Alexandre Julliard : winex11: Add window data locking to the mouse functions.
Alexandre Julliard
julliard at winehq.org
Tue Sep 18 14:04:29 CDT 2012
Module: wine
Branch: master
Commit: 1cfed8922e3b865b7a8fde20a29bdfff7330d6bf
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1cfed8922e3b865b7a8fde20a29bdfff7330d6bf
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Sep 17 16:37:26 2012 +0200
winex11: Add window data locking to the mouse functions.
---
dlls/winex11.drv/mouse.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c
index 72b85b3..5808420 100644
--- a/dlls/winex11.drv/mouse.c
+++ b/dlls/winex11.drv/mouse.c
@@ -488,15 +488,18 @@ BOOL clip_fullscreen_window( HWND hwnd, BOOL reset )
struct x11drv_thread_data *thread_data;
RECT rect;
DWORD style;
+ BOOL fullscreen;
if (hwnd == GetDesktopWindow()) return FALSE;
- if (!(data = X11DRV_get_win_data( hwnd ))) return FALSE;
style = GetWindowLongW( hwnd, GWL_STYLE );
if (!(style & WS_VISIBLE)) return FALSE;
if ((style & (WS_POPUP | WS_CHILD)) == WS_CHILD) return FALSE;
/* maximized windows don't count as full screen */
if ((style & WS_MAXIMIZE) && (style & WS_CAPTION) == WS_CAPTION) return FALSE;
- if (!is_window_rect_fullscreen( &data->whole_rect )) return FALSE;
+ if (!(data = get_win_data( hwnd ))) return FALSE;
+ fullscreen = is_window_rect_fullscreen( &data->whole_rect );
+ release_win_data( data );
+ if (!fullscreen) return FALSE;
if (!(thread_data = x11drv_thread_data())) return FALSE;
if (GetTickCount() - thread_data->clip_reset < 1000) return FALSE;
if (!reset && clipping_cursor && thread_data->clip_hwnd) return FALSE; /* already clipping */
@@ -541,7 +544,7 @@ static void send_mouse_input( HWND hwnd, Window window, unsigned int state, INPU
return;
}
- if (!(data = X11DRV_get_win_data( hwnd ))) return;
+ if (!(data = get_win_data( hwnd ))) return;
if (window == data->whole_window)
{
@@ -565,6 +568,7 @@ static void send_mouse_input( HWND hwnd, Window window, unsigned int state, INPU
sync_window_cursor( data->whole_window );
last_cursor_change = input->u.mi.time;
}
+ release_win_data( data );
if (hwnd != GetDesktopWindow())
{
More information about the wine-cvs
mailing list