winex11.drv: Initialize display devices before getting primary desktop rectangle.

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>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zhiyi Zhang 2019-09-20 16:54:31 +08:00 committed by Alexandre Julliard
parent 6cba24ef1f
commit efbbe66669
1 changed files with 6 additions and 3 deletions

View File

@ -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,