Module: wine Branch: master Commit: b4b817b907bb7ff3e1ab8769914676b1419fe3f3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b4b817b907bb7ff3e1ab876991...
Author: Alexandre Julliard julliard@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" );