Commit a73c5d5c authored by Alexandre Julliard's avatar Alexandre Julliard

explorer: Return a simple boolean instead of a window in the wine_create_desktop entry point.

parent 3e24a17c
...@@ -130,7 +130,7 @@ void X11DRV_init_desktop( Window win, unsigned int width, unsigned int height ) ...@@ -130,7 +130,7 @@ void X11DRV_init_desktop( Window win, unsigned int width, unsigned int height )
* *
* Create the X11 desktop window for the desktop mode. * Create the X11 desktop window for the desktop mode.
*/ */
Window CDECL X11DRV_create_desktop( UINT width, UINT height ) BOOL CDECL X11DRV_create_desktop( UINT width, UINT height )
{ {
XSetWindowAttributes win_attr; XSetWindowAttributes win_attr;
Window win; Window win;
...@@ -152,7 +152,9 @@ Window CDECL X11DRV_create_desktop( UINT width, UINT height ) ...@@ -152,7 +152,9 @@ Window CDECL X11DRV_create_desktop( UINT width, UINT height )
win = XCreateWindow( display, DefaultRootWindow(display), win = XCreateWindow( display, DefaultRootWindow(display),
0, 0, width, height, 0, default_visual.depth, InputOutput, default_visual.visual, 0, 0, width, height, 0, default_visual.depth, InputOutput, default_visual.visual,
CWEventMask | CWCursor | CWColormap, &win_attr ); CWEventMask | CWCursor | CWColormap, &win_attr );
if (win != None && width == screen_width && height == screen_height) if (!win) return FALSE;
if (width == screen_width && height == screen_height)
{ {
TRACE("setting desktop to fullscreen\n"); TRACE("setting desktop to fullscreen\n");
XChangeProperty( display, win, x11drv_atom(_NET_WM_STATE), XA_ATOM, 32, XChangeProperty( display, win, x11drv_atom(_NET_WM_STATE), XA_ATOM, 32,
...@@ -160,8 +162,8 @@ Window CDECL X11DRV_create_desktop( UINT width, UINT height ) ...@@ -160,8 +162,8 @@ Window CDECL X11DRV_create_desktop( UINT width, UINT height )
1); 1);
} }
XFlush( display ); XFlush( display );
if (win != None) X11DRV_init_desktop( win, width, height ); X11DRV_init_desktop( win, width, height );
return win; return TRUE;
} }
......
...@@ -106,13 +106,13 @@ static LRESULT WINAPI desktop_wnd_proc( HWND hwnd, UINT message, WPARAM wp, LPAR ...@@ -106,13 +106,13 @@ static LRESULT WINAPI desktop_wnd_proc( HWND hwnd, UINT message, WPARAM wp, LPAR
} }
} }
/* create the desktop and the associated X11 window, and make it the current desktop */ /* create the desktop and the associated driver window, and make it the current desktop */
static unsigned long create_desktop( const WCHAR *name, unsigned int width, unsigned int height ) static BOOL create_desktop( const WCHAR *name, unsigned int width, unsigned int height )
{ {
static const WCHAR rootW[] = {'r','o','o','t',0}; static const WCHAR rootW[] = {'r','o','o','t',0};
HDESK desktop; HDESK desktop;
unsigned long xwin = 0; BOOL ret = FALSE;
unsigned long (CDECL *create_desktop_func)(unsigned int, unsigned int); BOOL (CDECL *create_desktop_func)(unsigned int, unsigned int);
desktop = CreateDesktopW( name, NULL, NULL, 0, DESKTOP_ALL_ACCESS, NULL ); desktop = CreateDesktopW( name, NULL, NULL, 0, DESKTOP_ALL_ACCESS, NULL );
if (!desktop) if (!desktop)
...@@ -124,10 +124,10 @@ static unsigned long create_desktop( const WCHAR *name, unsigned int width, unsi ...@@ -124,10 +124,10 @@ static unsigned long create_desktop( const WCHAR *name, unsigned int width, unsi
if (graphics_driver && strcmpiW( name, rootW )) if (graphics_driver && strcmpiW( name, rootW ))
{ {
create_desktop_func = (void *)GetProcAddress( graphics_driver, "wine_create_desktop" ); create_desktop_func = (void *)GetProcAddress( graphics_driver, "wine_create_desktop" );
if (create_desktop_func) xwin = create_desktop_func( width, height ); if (create_desktop_func) ret = create_desktop_func( width, height );
} }
SetThreadDesktop( desktop ); SetThreadDesktop( desktop );
return xwin; return ret;
} }
/* parse the desktop size specification */ /* parse the desktop size specification */
...@@ -266,7 +266,6 @@ void manage_desktop( WCHAR *arg ) ...@@ -266,7 +266,6 @@ void manage_desktop( WCHAR *arg )
MSG msg; MSG msg;
HDC hdc; HDC hdc;
HWND hwnd, msg_hwnd; HWND hwnd, msg_hwnd;
unsigned long xwin = 0;
unsigned int width, height; unsigned int width, height;
WCHAR *cmdline = NULL; WCHAR *cmdline = NULL;
WCHAR *p = arg; WCHAR *p = arg;
...@@ -299,9 +298,7 @@ void manage_desktop( WCHAR *arg ) ...@@ -299,9 +298,7 @@ void manage_desktop( WCHAR *arg )
hdc = CreateDCW( displayW, NULL, NULL, NULL ); hdc = CreateDCW( displayW, NULL, NULL, NULL );
graphics_driver = __wine_get_driver_module( hdc ); graphics_driver = __wine_get_driver_module( hdc );
if (name && width && height) xwin = create_desktop( name, width, height ); if (name && width && height) using_root = !create_desktop( name, width, height );
if (!xwin) using_root = TRUE; /* using the root window */
/* create the desktop window */ /* create the desktop window */
hwnd = CreateWindowExW( 0, DESKTOP_CLASS_ATOM, NULL, hwnd = CreateWindowExW( 0, DESKTOP_CLASS_ATOM, NULL,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment