From f54633a4d217cba2f59489e65cc4b846c933c8d9 Mon Sep 17 00:00:00 2001 From: jypark Date: Thu, 10 May 2012 09:04:44 +0000 Subject: [PATCH] Send mouse move event before mouse down event in ecore_extn. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@70906 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- ChangeLog | 4 ++++ NEWS | 1 + src/lib/ecore_evas/ecore_evas_extn.c | 32 ++++++++++++++++++++++++-------- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 39960c2..85eee6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -636,3 +636,7 @@ 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 --- 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 diff --git a/src/lib/ecore_evas/ecore_evas_extn.c b/src/lib/ecore_evas/ecore_evas_extn.c index a7ea4c3..032484a 100644 --- a/src/lib/ecore_evas/ecore_evas_extn.c +++ b/src/lib/ecore_evas/ecore_evas_extn.c @@ -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)); + } } } -- 2.7.4