From cd538d23ccdd3d7157fd53ff79ccdca46cf204ab Mon Sep 17 00:00:00 2001 From: Carl Drougge Date: Sat, 10 Aug 2019 21:09:21 +0200 Subject: [PATCH] OS_X11::set_window_maximized gives up after 0.5s Spinning forever is clearly worse, especially since this happens on at least FVWM even though the window actually is maximized. (cherry picked from commit deb73001ab3874afa40dd12a4260e2d4c9fba641) --- platform/x11/os_x11.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index 0fa1c141cd2..58f50f072d9 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -1382,9 +1382,12 @@ void OS_X11::set_window_maximized(bool p_enabled) { XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); - if (is_window_maximize_allowed()) { - while (p_enabled && !is_window_maximized()) { - // Wait for effective resizing (so the GLX context is too). + if (p_enabled && is_window_maximize_allowed()) { + // Wait for effective resizing (so the GLX context is too). + // Give up after 0.5s, it's not going to happen on this WM. + // https://github.com/godotengine/godot/issues/19978 + for (int attempt = 0; !is_window_maximized() && attempt < 50; attempt++) { + usleep(10000); } }