diff --git a/dlls/winex11.drv/desktop.c b/dlls/winex11.drv/desktop.c index 559efe2beb3..d478cbdcb3a 100644 --- a/dlls/winex11.drv/desktop.c +++ b/dlls/winex11.drv/desktop.c @@ -173,12 +173,21 @@ void X11DRV_init_desktop( Window win, unsigned int width, unsigned int height ) */ BOOL CDECL X11DRV_create_desktop( UINT width, UINT height ) { + static const WCHAR rootW[] = {'r','o','o','t',0}; XSetWindowAttributes win_attr; Window win; Display *display = thread_init_display(); RECT rect; + WCHAR name[MAX_PATH]; - TRACE( "%u x %u\n", width, height ); + if (!GetUserObjectInformationW( GetThreadDesktop( GetCurrentThreadId() ), + UOI_NAME, name, sizeof(name), NULL )) + name[0] = 0; + + TRACE( "%s %ux%u\n", debugstr_w(name), width, height ); + + /* magic: desktop "root" means use the root window */ + if (!lstrcmpiW( name, rootW )) return FALSE; /* Create window */ win_attr.event_mask = ExposureMask | KeyPressMask | KeyReleaseMask | EnterWindowMask | diff --git a/programs/explorer/desktop.c b/programs/explorer/desktop.c index ff582045305..d802bc34656 100644 --- a/programs/explorer/desktop.c +++ b/programs/explorer/desktop.c @@ -670,12 +670,10 @@ static LRESULT WINAPI desktop_wnd_proc( HWND hwnd, UINT message, WPARAM wp, LPAR /* create the desktop and the associated driver window, and make it the current desktop */ static BOOL create_desktop( HMODULE driver, const WCHAR *name, unsigned int width, unsigned int height ) { - static const WCHAR rootW[] = {'r','o','o','t',0}; BOOL ret = FALSE; BOOL (CDECL *create_desktop_func)(unsigned int, unsigned int); - /* magic: desktop "root" means use the root window */ - if (driver && strcmpiW( name, rootW )) + if (driver) { create_desktop_func = (void *)GetProcAddress( driver, "wine_create_desktop" ); if (create_desktop_func) ret = create_desktop_func( width, height );