2017-07-12 8:45 GMT+02:00 Carsten Haitzler <ras...@rasterman.com>: > raster pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id= > ea7dd2a9c29b96d9bc648feccb1270b4788529d6 > > commit ea7dd2a9c29b96d9bc648feccb1270b4788529d6 > Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> > Date: Wed Jul 12 15:43:41 2017 +0900 > > evas mouse in/out/move event fix to remove "invalid move" > > this should fix T5582 "properly" by emitting a move after an in only > if pointer x,y changed. this fixes rage and i hope still should handle > the original issue. let me know if it doesn't. >
This also fix mouse hide feature in epymc thanks for taking care of the issue, I really appreciate > > @fix > --- > src/lib/evas/canvas/evas_events.c | 60 +++++++++++++++++++++++++++--- > --------- > 1 file changed, 42 insertions(+), 18 deletions(-) > > diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_ > events.c > index 82a040765c..e6e3efffc5 100644 > --- a/src/lib/evas/canvas/evas_events.c > +++ b/src/lib/evas/canvas/evas_events.c > @@ -738,9 +738,13 @@ _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 ((ev->cur.x != ev->prev.x) && > + (ev->cur.y != ev->prev.y)) > + { > + 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; > } > } > @@ -1224,9 +1228,13 @@ _evas_event_source_mouse_in_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_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 ((ev->cur.x != ev->prev.x) && > + (ev->cur.y != ev->prev.y)) > + { > + 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; > } > } > @@ -1658,9 +1666,13 @@ _post_up_handle(Evas_Public_Data *e, > Efl_Input_Pointer *parent_ev, > 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 ((ev->cur.x != ev->prev.x) && > + (ev->cur.y != ev->prev.y)) > + { > + 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); > @@ -2287,9 +2299,13 @@ _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 ((ev->cur.x != ev->prev.x) && > + (ev->cur.y != ev->prev.y)) > + { > + 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); > @@ -2426,9 +2442,13 @@ 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 ((ev->cur.x != ev->prev.x) && > + (ev->cur.y != ev->prev.y)) > + { > + 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; > @@ -2561,9 +2581,13 @@ _canvas_event_feed_mouse_in_internal(Evas *eo_e, > Efl_Input_Pointer_Data *ev) > 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 ((ev->cur.x != ev->prev.x) && > + (ev->cur.y != ev->prev.y)) > + { > + 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; > > -- > > > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel