浏览代码

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.
Matthew Munro (mam552) 2 年之前
父节点
当前提交
0f5b448a9c
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      platform/linuxbsd/display_server_x11.cpp

+ 5 - 0
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;