summaryrefslogtreecommitdiff
path: root/riscos/treeview.c
diff options
context:
space:
mode:
authorSteve Fryatt <stevef@netsurf-browser.org>2013-09-08 11:55:21 +0100
committerSteve Fryatt <stevef@netsurf-browser.org>2013-09-08 11:55:21 +0100
commita00e0f91c7ccb27108cc396ca8afa3207935de4c (patch)
treedfe47712132b8f26f46fe319f3222b44c5e2e060 /riscos/treeview.c
parente87596ad1f7755c50f7a00edc85e66908ad1ba10 (diff)
downloadnetsurf-a00e0f91c7ccb27108cc396ca8afa3207935de4c.tar.gz
netsurf-a00e0f91c7ccb27108cc396ca8afa3207935de4c.tar.bz2
Move all mouse tracking into ro_mouse module.
Add Pointer Entering Window events to wimp_event module and add handlers to all modules requiring mouse tracking. Updated: Treeview, URL Complete, History and GUI Window. Delete all handling for Pointer Entering/Leaving from ro_gui.
Diffstat (limited to 'riscos/treeview.c')
-rw-r--r--riscos/treeview.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/riscos/treeview.c b/riscos/treeview.c
index 4641a6d0a..4756d8c2d 100644
--- a/riscos/treeview.c
+++ b/riscos/treeview.c
@@ -100,6 +100,7 @@ static void ro_treeview_redraw_loop(wimp_draw *redraw, ro_treeview *tv,
osbool more);
static void ro_treeview_open(wimp_open *open);
static bool ro_treeview_mouse_click(wimp_pointer *pointer);
+static void ro_treeview_pointer_entering(wimp_entering *entering);
static void ro_treeview_drag_start(ro_treeview *tv, wimp_pointer *pointer,
wimp_window_state *state);
static void ro_treeview_drag_end(wimp_dragged *drag, void *data);
@@ -191,6 +192,8 @@ ro_treeview *ro_treeview_create(wimp_w window, struct toolbar *toolbar,
ro_gui_wimp_event_register_redraw_window(tv->w, ro_treeview_redraw);
ro_gui_wimp_event_register_scroll_window(tv->w, ro_treeview_scroll);
+ ro_gui_wimp_event_register_pointer_entering_window(tv->w,
+ ro_treeview_pointer_entering);
ro_gui_wimp_event_register_open_window(tv->w, ro_treeview_open);
ro_gui_wimp_event_register_mouse_click(tv->w, ro_treeview_mouse_click);
ro_gui_wimp_event_register_keypress(tv->w, ro_treeview_keypress);
@@ -413,6 +416,7 @@ void ro_treeview_scroll(wimp_scroll *scroll)
}
}
+
/**
* Redraw a treeview window, once the initial readraw block has been collected.
*
@@ -899,6 +903,23 @@ static bool ro_treeview_mouse_click(wimp_pointer *pointer)
/**
+ * Handle Pointer Entering Window events for treeview windows.
+ *
+ * \param *entering The Wimp_PointerEnteringWindow block.
+ */
+
+void ro_treeview_pointer_entering(wimp_entering *entering)
+{
+ ro_treeview *tv;
+
+ tv = (ro_treeview *) ro_gui_wimp_event_get_user_data(entering->w);
+ if (tv == NULL)
+ return;
+
+ ro_mouse_track_start(NULL, ro_treeview_mouse_at, NULL);
+}
+
+/**
* Track the mouse under Null Polls from the wimp, to support dragging.
*
* \param *pointer Pointer to a Wimp Pointer block.