hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=97b214b0339fbc18398811105ac9619afa5b89fb
commit 97b214b0339fbc18398811105ac9619afa5b89fb Author: ChunEon Park <[email protected]> Date: Tue Aug 25 19:32:29 2015 +0900 Revert "Revert "ecore_win: fix the incorrect mouse cursor position."" This reverts commit 3ce8860dab29ba6d0849ed1ecbbc72bbe0e11773. Apply only to mouse wheel case. Button press/release wans't problem actually. If I correct, this is caused because of different nature of window systems. Anyway our Ecore_Event_Mouse values should keep consistency among the various systems. --- src/lib/ecore_win32/ecore_win32_event.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore_win32/ecore_win32_event.c b/src/lib/ecore_win32/ecore_win32_event.c index f9d29a1..99ad2d4 100644 --- a/src/lib/ecore_win32/ecore_win32_event.c +++ b/src/lib/ecore_win32/ecore_win32_event.c @@ -1421,10 +1421,13 @@ _ecore_win32_event_handle_button_press(Ecore_Win32_Callback_Data *msg, int button) { Ecore_Win32_Window *window; + RECT rect = { 0, 0, 0, 0 }; INF("mouse button pressed"); window = (Ecore_Win32_Window *)GetWindowLongPtr(msg->window, GWLP_USERDATA); + if (!GetWindowRect(window->window, &rect)) + ERR("GetWindowRect() failed!"); if (button > 3) { @@ -1438,8 +1441,10 @@ _ecore_win32_event_handle_button_press(Ecore_Win32_Callback_Data *msg, e->direction = 0; /* wheel delta is positive or negative, never 0 */ e->z = GET_WHEEL_DELTA_WPARAM(msg->window_param) > 0 ? -1 : 1; - e->x = GET_X_LPARAM(msg->data_param); - e->y = GET_Y_LPARAM(msg->data_param); + e->x = GET_X_LPARAM(msg->data_param) - rect.left; + e->y = GET_Y_LPARAM(msg->data_param) - rect.top; + e->root.x = rect.left; + e->root.y = rect.top; e->timestamp = msg->timestamp; e->modifiers = _ecore_win32_modifiers_get(); @@ -1460,6 +1465,8 @@ _ecore_win32_event_handle_button_press(Ecore_Win32_Callback_Data *msg, e->event_window = e->window; e->x = GET_X_LPARAM(msg->data_param); e->y = GET_Y_LPARAM(msg->data_param); + e->root.x = rect.left; + e->root.y = rect.top; e->timestamp = msg->timestamp; e->modifiers = _ecore_win32_modifiers_get(); @@ -1488,6 +1495,8 @@ _ecore_win32_event_handle_button_press(Ecore_Win32_Callback_Data *msg, e->buttons = button; e->x = GET_X_LPARAM(msg->data_param); e->y = GET_Y_LPARAM(msg->data_param); + e->root.x = rect.left; + e->root.y = rect.top; e->timestamp = msg->timestamp; e->modifiers = _ecore_win32_modifiers_get(); --
