From 0f5b448a9c11d6f66942934c4156a87b387356a3 Mon Sep 17 00:00:00 2001 From: "Matthew Munro (mam552)" Date: Sat, 1 Oct 2022 16:01:28 -0600 Subject: [PATCH] Fix inconsistent window state on X11. Fixes #66413. DisplayServerX11 tracks some internal state about whether the window is fullscreen, minimized, maximized or none. This commit queries the display server when the window changes, so that this internal state can be correctly updated. --- platform/linuxbsd/display_server_x11.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/platform/linuxbsd/display_server_x11.cpp b/platform/linuxbsd/display_server_x11.cpp index 66dea6cf1bf..81fc9416081 100644 --- a/platform/linuxbsd/display_server_x11.cpp +++ b/platform/linuxbsd/display_server_x11.cpp @@ -3142,6 +3142,11 @@ void DisplayServerX11::_window_changed(XEvent *event) { return; } + // Query display server about a possible new window state. + wd.fullscreen = _window_fullscreen_check(window_id); + wd.minimized = _window_minimize_check(window_id); + wd.maximized = _window_maximize_check(window_id, "_NET_WM_STATE"); + { //the position in xconfigure is not useful here, obtain it manually int x, y;