From f6a020bd3ad2ec93fe93a244de4bea4fc8b84590 Mon Sep 17 00:00:00 2001 From: nimetu Date: Fri, 18 Mar 2022 14:45:38 +0200 Subject: [PATCH] Fix getCurrentScreenMode() when no window has been created yet --- .../3d/driver/opengl/driver_opengl_window.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/nel/src/3d/driver/opengl/driver_opengl_window.cpp b/nel/src/3d/driver/opengl/driver_opengl_window.cpp index bb48473d3..93c8f952b 100644 --- a/nel/src/3d/driver/opengl/driver_opengl_window.cpp +++ b/nel/src/3d/driver/opengl/driver_opengl_window.cpp @@ -2484,13 +2484,19 @@ bool CDriverGL::getCurrentScreenMode(GfxMode &mode) Window child; // get window position so we can compare monitors (or mouse position if window not visible yet) - XWindowAttributes xwa; - XGetWindowAttributes(_dpy, _win, &xwa); - if (xwa.map_state != IsUnmapped) + bool useMouseForPosition = true; + if (_win != EmptyWindow) { - XTranslateCoordinates(_dpy, _win, xwa.root, xwa.x, xwa.y, &x, &y, &child); + XWindowAttributes xwa; + XGetWindowAttributes(_dpy, _win, &xwa); + if (xwa.map_state != IsUnmapped) + { + XTranslateCoordinates(_dpy, _win, xwa.root, xwa.x, xwa.y, &x, &y, &child); + useMouseForPosition = false; + } } - else + + if (useMouseForPosition) { sint rx, ry, wx, wy; uint mask;