Alexandre Julliard : winex11: Never attempt to create the window data from a different thread.
Alexandre Julliard
julliard at winehq.org
Thu Aug 30 14:34:33 CDT 2012
Module: wine
Branch: master
Commit: e280527f6b8e610a004061cdaaef18e09a446af8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e280527f6b8e610a004061cdaaef18e09a446af8
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Aug 30 12:11:43 2012 +0200
winex11: Never attempt to create the window data from a different thread.
---
dlls/winex11.drv/window.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 5840e85..1404c88 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -1149,8 +1149,7 @@ static Window get_owner_whole_window( HWND owner, BOOL force_managed )
if (!(data = X11DRV_get_win_data( owner )))
{
- if (GetWindowThreadProcessId( owner, NULL ) != GetCurrentThreadId() ||
- !(data = X11DRV_create_win_data( owner )))
+ if (!(data = X11DRV_create_win_data( owner )))
return (Window)GetPropA( owner, whole_window_prop );
}
else if (!data->managed && force_managed) /* make it managed */
@@ -2001,6 +2000,8 @@ struct x11drv_win_data *X11DRV_create_win_data( HWND hwnd )
/* don't create win data for HWND_MESSAGE windows */
if (parent != GetDesktopWindow() && !GetAncestor( parent, GA_PARENT )) return NULL;
+ if (GetWindowThreadProcessId( hwnd, NULL ) != GetCurrentThreadId()) return NULL;
+
display = thread_init_display();
if (!(data = alloc_win_data( display, hwnd ))) return NULL;
More information about the wine-cvs
mailing list