evas: Always send mouse,move after mouse,in to objects
authorJean-Philippe Andre <jp.andre@samsung.com>
Fri, 16 Jun 2017 19:03:09 +0000 (15:03 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Fri, 16 Jun 2017 16:49:33 +0000 (12:49 -0400)
Fixes T5582

src/lib/evas/canvas/evas_events.c

index 075bc94..82a0407 100644 (file)
@@ -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;