Alexandre Julliard : user32: Only wait for the desktop process when necessary.
Alexandre Julliard
julliard at winehq.org
Tue Feb 4 13:55:04 CST 2014
Module: wine
Branch: master
Commit: b4b817b907bb7ff3e1ab8769914676b1419fe3f3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b4b817b907bb7ff3e1ab8769914676b1419fe3f3
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Jan 30 21:49:32 2014 +0100
user32: Only wait for the desktop process when necessary.
---
dlls/user32/driver.c | 7 +++++++
dlls/user32/win.c | 3 ---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
index 85e4116..672f194 100644
--- a/dlls/user32/driver.c
+++ b/dlls/user32/driver.c
@@ -57,8 +57,15 @@ static HMODULE load_desktop_driver( HWND hwnd )
WCHAR key[(sizeof(key_pathW) + sizeof(displayW)) / sizeof(WCHAR) + 40];
UINT guid_atom = HandleToULong( GetPropW( hwnd, display_device_guid_propW ));
+ USER_CheckNotLock();
+
strcpy( driver_load_error, "The explorer process failed to start." ); /* default error */
+ if (!guid_atom)
+ {
+ SendMessageW( hwnd, WM_NULL, 0, 0 ); /* wait for the desktop process to be ready */
+ guid_atom = HandleToULong( GetPropW( hwnd, display_device_guid_propW ));
+ }
memcpy( key, key_pathW, sizeof(key_pathW) );
if (!GlobalGetAtomNameW( guid_atom, key + strlenW(key), 40 )) return 0;
strcatW( key, displayW );
diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index e29153a..275b93c 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -2086,9 +2086,6 @@ HWND WINAPI GetDesktopWindow(void)
SERVER_END_REQ;
}
- /* wait for the desktop process to be ready */
- SendMessageW( thread_info->top_window, WM_NULL, 0, 0 );
-
if (!thread_info->top_window || !USER_Driver->pCreateDesktopWindow( thread_info->top_window ))
ERR( "failed to create desktop window\n" );
More information about the wine-cvs
mailing list