diff options
Diffstat (limited to 'riscos/treeview.c')
-rw-r--r-- | riscos/treeview.c | 21 |
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. |