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 Andreolisaid: > 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)) > >
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 =
[EGIT] [core/efl] master 01/03: evas mouse in/out/move event fix to remove "invalid move"
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. @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)) + { +