Send mouse move event before mouse down event in ecore_extn.
authorjypark <jypark@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 10 May 2012 09:04:44 +0000 (09:04 +0000)
committerjypark <jypark@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 10 May 2012 09:04:44 +0000 (09:04 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@70906 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
NEWS
src/lib/ecore_evas/ecore_evas_extn.c

index 39960c2..85eee6d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 2012-05-10  Cedric Bail
 
        * Reduce rounding error in ecore_animator_pos_map.
+
+2012-05-10  Jiyoun Park
+
+       * Send mouse move event before mouse down event in ecore_extn
diff --git a/NEWS b/NEWS
index 40b50bf..eae3557 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,7 @@ Fixes:
     * ecore
      - Prevent running out of fd when cycling ecore_init/ecore_shutdown.
      - Reduce rounding error in ecore_animator_pos_map.
+     - Send mouse move event before mouse down event in ecore_extn
 
 Ecore 1.2.0
 
index a7ea4c3..032484a 100644 (file)
@@ -672,14 +672,30 @@ _ecore_evas_extn_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj
    if (!extn) return;
    if (extn->ipc.server)
      {
-        Ipc_Data_Ev_Mouse_Down ipc;
-
-        ipc.b = ev->button;
-        ipc.flags = ev->flags;
-        ipc.timestamp = ev->timestamp;
-        ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
-        ipc.event_flags = ev->event_flags;
-        ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MOUSE_DOWN, 0, 0, 0, &ipc, sizeof(ipc));
+       /* We have send mouse move event before mouse down event */
+       {
+          Ipc_Data_Ev_Mouse_Move ipc_move;
+          Evas_Coord x, y;
+
+          x = ev->canvas.x;
+          y = ev->canvas.y;
+          _ecore_evas_extn_coord_translate(ee, &x, &y);
+          ipc_move.x = x;
+          ipc_move.y = y;
+          ipc_move.timestamp = ev->timestamp;
+          ipc_move.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
+          ipc_move.event_flags = ev->event_flags;
+          ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MOUSE_MOVE, 0, 0, 0, &ipc_move, sizeof(ipc_move));
+       }
+       {
+          Ipc_Data_Ev_Mouse_Down ipc;
+          ipc.b = ev->button;
+          ipc.flags = ev->flags;
+          ipc.timestamp = ev->timestamp;
+          ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
+          ipc.event_flags = ev->event_flags;
+          ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MOUSE_DOWN, 0, 0, 0, &ipc, sizeof(ipc));
+       }
      }
 }