[PATCH v2 1/4] winex11.drv: Initialize display devices before getting primary desktop rectangle.
Zhiyi Zhang
zzhang at codeweavers.com
Fri Sep 20 03:54:31 CDT 2019
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 at 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,
--
2.23.0
More information about the wine-devel
mailing list