Module: wine Branch: master Commit: ff721806ca94e6824cc87488d222f230c0381595 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff721806ca94e6824cc87488d2...
Author: Vitaliy Margolen wine-patches@kievinfo.com Date: Tue Dec 12 15:58:37 2006 -0700
winex11.drv: Update cached cursor position after calling hook.
---
dlls/winex11.drv/mouse.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c index e2c7dd0..a9a4a8d 100644 --- a/dlls/winex11.drv/mouse.c +++ b/dlls/winex11.drv/mouse.c @@ -71,6 +71,8 @@ static const UINT button_up_flags[NB_BUT
POINT cursor_pos;
+BOOL X11DRV_SetCursorPos( INT x, INT y ); + /*********************************************************************** * get_coords * @@ -231,9 +233,6 @@ void X11DRV_send_mouse_input( HWND hwnd, if (cursor_pos.x == x && cursor_pos.y == y) flags &= ~MOUSEEVENTF_MOVE; wine_tsx11_unlock(); } - wine_tsx11_lock(); - cursor_pos = pt; - wine_tsx11_unlock(); } else if (flags & MOUSEEVENTF_MOVE) { @@ -262,7 +261,6 @@ void X11DRV_send_mouse_input( HWND hwnd, else if (pt.x >= screen_width) pt.x = screen_width - 1; if (pt.y < 0) pt.y = 0; else if (pt.y >= screen_height) pt.y = screen_height - 1; - cursor_pos = pt; wine_tsx11_unlock(); } else @@ -279,10 +277,12 @@ void X11DRV_send_mouse_input( HWND hwnd, if ((injected_flags & LLMHF_INJECTED) && ((flags & MOUSEEVENTF_ABSOLUTE) || x || y)) /* we have to actually move the cursor */ { - TRACE( "warping to (%d,%d)\n", pt.x, pt.y ); + X11DRV_SetCursorPos( pt.x, pt.y ); + } + else + { wine_tsx11_lock(); - XWarpPointer( thread_display(), root_window, root_window, 0, 0, 0, 0, - pt.x - virtual_screen_rect.left, pt.y - virtual_screen_rect.top ); + cursor_pos = pt; wine_tsx11_unlock(); } }