From 5cad9b9417522c12f542105568efbbc5dc28234f Mon Sep 17 00:00:00 2001 From: Jiyoun Park Date: Thu, 10 May 2012 09:04:44 +0000 Subject: [PATCH] Send mouse move event before mouse down event in ecore_extn. SVN revision: 70906 --- legacy/ecore/ChangeLog | 4 +++ legacy/ecore/NEWS | 1 + .../src/lib/ecore_evas/ecore_evas_extn.c | 30 ++++++++++++++----- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/legacy/ecore/ChangeLog b/legacy/ecore/ChangeLog index 39960c22b0..85eee6d424 100644 --- a/legacy/ecore/ChangeLog +++ b/legacy/ecore/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/legacy/ecore/NEWS b/legacy/ecore/NEWS index 40b50bf6a1..eae35577b2 100644 --- a/legacy/ecore/NEWS +++ b/legacy/ecore/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/legacy/ecore/src/lib/ecore_evas/ecore_evas_extn.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_extn.c index a7ea4c3b91..032484a341 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_extn.c +++ b/legacy/ecore/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; + /* We have send mouse move event before mouse down event */ + { + Ipc_Data_Ev_Mouse_Move ipc_move; + Evas_Coord x, y; - 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)); + 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)); + } } }