From dacc2d0f2616640129a1b0bcbd043b30112cc1f4 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 Conflicts: ChangeLog NEWS Change-Id: I50e64b64570496fbe5ccb483c7134d673e3e76ef --- ChangeLog | 4 ++++ NEWS | 10 ++++++++++ src/lib/ecore_evas/ecore_evas_extn.c | 32 ++++++++++++++++++++++++-------- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7815495..03de1ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -620,3 +620,7 @@ 2012-04-20 Vincent Torri * Add override_set() support in ecore_evas_win32. + +2012-05-10 Jiyoun Park + + * Send mouse move event before mouse down event in ecore_extn diff --git a/NEWS b/NEWS index 8339497..ab0ba68 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,13 @@ +Ecore 1.3.0 + +Changes since Ecore 1.2.0: + +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 Changes since Ecore 1.1.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