Commit 584673a5a191f9da655d8d15a0ff0e30ad8d0ba4

Ethan Lee 2021-08-02T12:51:23

wayland: Don't ignore configs for non-fullscreen, non-resizable windows. This was causing configure events to not inform SDL of window size changes, even when they were based on resizes that we fully expected. The result was fullscreen->windowed not working at all, because it would retain the desktop resolution instead of reverting to the floating size that it had before moving to fullscreen mode. Fixes Super Hexagon fullscreen toggling.

diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c
index 4ffc542..6d32834 100644
--- a/src/video/wayland/SDL_waylandwindow.c
+++ b/src/video/wayland/SDL_waylandwindow.c
@@ -236,17 +236,13 @@ handle_configure_xdg_toplevel(void *data,
                 height = SDL_min(height, window->max_h);
             }
             height = SDL_max(height, window->min_h);
-        } else {
-            return;
         }
-    }
 
-    /* Always send a maximized/restore event; if the event is redundant it will
-     * automatically be discarded (see src/events/SDL_windowevents.c)
-     *
-     * No, we do not get minimize events from xdg-shell.
-     */
-    if (!fullscreen) {
+        /* Always send a maximized/restore event; if the event is redundant it will
+         * automatically be discarded (see src/events/SDL_windowevents.c)
+         *
+         * No, we do not get minimize events from xdg-shell.
+         */
         SDL_SendWindowEvent(window,
                             maximized ?
                                 SDL_WINDOWEVENT_MAXIMIZED :