summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorMatthew Munro (mam552) <mam552@usask.ca>2022-10-01 16:01:28 -0600
committerMatthew Munro (mam552) <mam552@usask.ca>2022-10-01 16:01:28 -0600
commit0f5b448a9c11d6f66942934c4156a87b387356a3 (patch)
tree191fc0eb77e4f1bef10e777dec5b80915d801ca1 /platform
parente69b7083d45c5d8698508cce7086d361c4b1f44c (diff)
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.
Diffstat (limited to 'platform')
-rw-r--r--platform/linuxbsd/display_server_x11.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/platform/linuxbsd/display_server_x11.cpp b/platform/linuxbsd/display_server_x11.cpp
index 66dea6cf1b..81fc941608 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;