From dc9ebdd7066a7e7e5dbf8fd01eb019d3ee7f9336 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Fri, 16 Jun 2017 15:03:09 -0400 Subject: [PATCH] evas: Always send mouse,move after mouse,in to objects Fixes T5582 --- src/lib/evas/canvas/evas_events.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c index 075bc94a17..82a040765c 100644 --- a/src/lib/evas/canvas/evas_events.c +++ b/src/lib/evas/canvas/evas_events.c @@ -738,6 +738,9 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, ev->action = EFL_POINTER_ACTION_IN; evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, evt, event_id2, EFL_EVENT_POINTER_IN); + ev->action = EFL_POINTER_ACTION_MOVE; + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id2, EFL_EVENT_POINTER_MOVE); if (e->delete_me) break; } } @@ -1218,8 +1221,12 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj, Evas *eo_e, obj_pdata->mouse_in = 1; ev->cur = point; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, obj_pdata->mouse_grabbed); + ev->action = EFL_POINTER_ACTION_IN; evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, evt, event_id, EFL_EVENT_POINTER_IN); + ev->action = EFL_POINTER_ACTION_MOVE; + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); if (e->delete_me || e->is_frozen) break; } } @@ -1648,8 +1655,12 @@ _post_up_handle(Evas_Public_Data *e, Efl_Input_Pointer *parent_ev, ev->cur.x = pdata->seat->x; ev->cur.y = pdata->seat->y; _evas_event_havemap_adjust_f(eo_obj_itr, obj_itr, &ev->cur, obj_pdata->mouse_grabbed); + ev->action = EFL_POINTER_ACTION_IN; evas_object_event_callback_call(eo_obj_itr, obj_itr, EVAS_CALLBACK_MOUSE_IN, evt, event_id, EFL_EVENT_POINTER_IN); + ev->action = EFL_POINTER_ACTION_MOVE; + evas_object_event_callback_call(eo_obj_itr, obj_itr, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); if ((obj_itr->proxy->is_proxy) && (obj_itr->proxy->src_events)) _evas_event_source_mouse_in_events(eo_obj_itr, eo_e, evt, event_id); @@ -2276,6 +2287,9 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Input_Pointer_Da ev->action = EFL_POINTER_ACTION_IN; evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt, event_id, EFL_EVENT_POINTER_IN); + ev->action = EFL_POINTER_ACTION_MOVE; + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); @@ -2412,6 +2426,9 @@ nogrep: ev->action = EFL_POINTER_ACTION_IN; evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt, event_id, EFL_EVENT_POINTER_IN); + ev->action = EFL_POINTER_ACTION_MOVE; + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); if (e->delete_me) break; @@ -2541,8 +2558,12 @@ _canvas_event_feed_mouse_in_internal(Evas *eo_e, Efl_Input_Pointer_Data *ev) ev->cur.x = pdata->seat->x; ev->cur.y = pdata->seat->y; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj_pdata->mouse_grabbed); + ev->action = EFL_POINTER_ACTION_IN; evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt, event_id, EFL_EVENT_POINTER_IN); + ev->action = EFL_POINTER_ACTION_MOVE; + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); if (e->delete_me || e->is_frozen) break;