Re: [E-devel] [EGIT] [core/efl] master 01/03: evas mouse in/out/move event fix to remove "invalid move"
On Sat, 15 Jul 2017 10:10:43 +0200 Davide Andreoli said: > 2017-07-12 8:45 GMT+02:00 Carsten Haitzler : > > > raster pushed a commit to branch master. > > > > http://git.enlightenment.org/core/efl.git/commit/?id= > > ea7dd2a9c29b96d9bc648feccb1270b4788529d6 > > > > commit ea7dd2a9c29b96d9bc648feccb1270b4788529d6 > > Author: Carsten Haitzler (Rasterman) > > 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 no problems. just let us know about issues when they come up (e.g. in git) and we should look into it. we don't WANT to break things. it just happens with all the guts being changed about with eo/interfaces. :) > > @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
Re: [E-devel] [EGIT] [core/efl] master 01/03: evas mouse in/out/move event fix to remove "invalid move"
2017-07-12 8:45 GMT+02:00 Carsten Haitzler : > raster pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id= > ea7dd2a9c29b96d9bc648feccb1270b4788529d6 > > commit ea7dd2a9c29b96d9bc648feccb1270b4788529d6 > Author: Carsten Haitzler (Rasterman) > 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_eve