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

Reply via email to