x11drv: Make sure to never manipulate the root window, even if we own
the desktop window.
This commit is contained in:
parent
f978f615d8
commit
6d5f5447ea
|
@ -145,7 +145,8 @@ void X11DRV_sync_window_style( Display *display, struct x11drv_win_data *data )
|
|||
int mask = get_window_attributes( data, &attr );
|
||||
|
||||
wine_tsx11_lock();
|
||||
XChangeWindowAttributes( display, data->whole_window, mask, &attr );
|
||||
if (data->whole_window != DefaultRootWindow(display))
|
||||
XChangeWindowAttributes( display, data->whole_window, mask, &attr );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
|
||||
|
@ -715,7 +716,8 @@ static void destroy_whole_window( Display *display, struct x11drv_win_data *data
|
|||
wine_tsx11_lock();
|
||||
XSync( gdi_display, False ); /* flush any reference to this drawable in GDI queue */
|
||||
XDeleteContext( display, data->whole_window, winContext );
|
||||
XDestroyWindow( display, data->whole_window ); /* this destroys client too */
|
||||
if (data->whole_window != DefaultRootWindow(display))
|
||||
XDestroyWindow( display, data->whole_window );
|
||||
data->whole_window = 0;
|
||||
if (data->xic)
|
||||
{
|
||||
|
|
|
@ -586,9 +586,16 @@ BOOL X11DRV_set_window_pos( HWND hwnd, HWND insert_after, const RECT *rectWindow
|
|||
}
|
||||
SERVER_END_REQ;
|
||||
|
||||
if (win == WND_DESKTOP)
|
||||
if (win == WND_DESKTOP || data->whole_window == DefaultRootWindow(gdi_display))
|
||||
{
|
||||
data->whole_rect = data->client_rect = data->window_rect = *rectWindow;
|
||||
if (win != WND_DESKTOP)
|
||||
{
|
||||
win->rectWindow = *rectWindow;
|
||||
win->rectClient = *rectClient;
|
||||
win->dwStyle = new_style;
|
||||
WIN_ReleasePtr( win );
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue