Module: wine Branch: master Commit: b7987db36f9a9d79ac57d08e1bfd482b238ffcc1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b7987db36f9a9d79ac57d08e1b...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Feb 24 12:14:58 2011 +0100
winex11: Update the window cursor at most once every 100ms if nothing changed.
---
dlls/winex11.drv/mouse.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c index be55085..794056b 100644 --- a/dlls/winex11.drv/mouse.c +++ b/dlls/winex11.drv/mouse.c @@ -265,8 +265,12 @@ static HWND update_mouse_state( HWND hwnd, Window window, int x, int y, unsigned pt->x = data->client_rect.right - data->client_rect.left - 1 - pt->x; MapWindowPoints( hwnd, 0, pt, 1 );
- cursor_window = hwnd; - sync_window_cursor( data ); + if (InterlockedExchangePointer( (void **)&cursor_window, hwnd ) != hwnd || + GetTickCount() - last_time_modified > 100) + { + cursor_window = hwnd; + sync_window_cursor( data ); + } if (hwnd != GetDesktopWindow()) hwnd = GetAncestor( hwnd, GA_ROOT );
/* update the wine server Z-order */