summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Foo <chris.foo@gmail.com>2023-05-08 20:23:45 -0400
committerRĂ©mi Verschelde <rverschelde@gmail.com>2023-05-12 12:14:30 +0200
commit28012c40fb5d86d6d5fc4fa4c8ab71b726ec520c (patch)
tree8f1d4c8041011ddda7e374a081fdc37ab3b42644
parentbab96e71d210c0ba9acf9660fb2220be606cad21 (diff)
Ensure WindowData minimized/maximized are mutually exclusive
The window manager can break the assumption that fullscreen/maximized/minimized values are mutually exclusive. (cherry picked from commit e4d052e284c04c9fd41d42de40151451e8756a6b)
-rw-r--r--platform/linuxbsd/x11/display_server_x11.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp
index 3f57a95dea..d70efb53f8 100644
--- a/platform/linuxbsd/x11/display_server_x11.cpp
+++ b/platform/linuxbsd/x11/display_server_x11.cpp
@@ -3483,8 +3483,8 @@ void DisplayServerX11::_window_changed(XEvent *event) {
// 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");
+ wd.maximized = _window_maximize_check(window_id, "_NET_WM_STATE") && !wd.fullscreen;
+ wd.minimized = _window_minimize_check(window_id) && !wd.fullscreen && !wd.maximized;
{
//the position in xconfigure is not useful here, obtain it manually