Otherwise, the retrieved primary desktop might be from the last explorer instance if we launch new explorer instances before wine server fully shuts down.
Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com --- v2: Supersede 169756,169762~169764. Fix a issue where primary is set to a disconnected XRandR output.
dlls/winex11.drv/desktop.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/winex11.drv/desktop.c b/dlls/winex11.drv/desktop.c index ecbcd6b381..fed8dd32e9 100644 --- a/dlls/winex11.drv/desktop.c +++ b/dlls/winex11.drv/desktop.c @@ -147,15 +147,18 @@ static LONG X11DRV_desktop_SetCurrentMode(int mode) */ void X11DRV_init_desktop( Window win, unsigned int width, unsigned int height ) { - RECT primary_rect = get_primary_monitor_rect(); + RECT primary_rect;
root_window = win; managed_mode = FALSE; /* no managed windows in desktop mode */ - max_width = primary_rect.right - primary_rect.left; - max_height = primary_rect.bottom - primary_rect.top; + xinerama_init( width, height ); X11DRV_DisplayDevices_Init( TRUE );
+ primary_rect = get_primary_monitor_rect(); + max_width = primary_rect.right - primary_rect.left; + max_height = primary_rect.bottom - primary_rect.top; + /* initialize the available resolutions */ dd_modes = X11DRV_Settings_SetHandlers("desktop", X11DRV_desktop_GetCurrentMode,