From 8d55fbe4d206caf94e525ede2fd1c855d6aeeb99 Mon Sep 17 00:00:00 2001 From: Frank Praznik Date: Sun, 15 Mar 2026 16:03:52 -0400 Subject: [PATCH] wayland: Fix the state check when resizing a hidden window The floating state is only set after the first configuration event arrives, so size changes before the window was initially shown could be dropped. Use the flags instead. --- src/video/wayland/SDL_waylandwindow.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c index e45728802b..d2ad64974d 100644 --- a/src/video/wayland/SDL_waylandwindow.c +++ b/src/video/wayland/SDL_waylandwindow.c @@ -3084,10 +3084,12 @@ void Wayland_SetWindowSize(SDL_VideoDevice *_this, SDL_Window *window) */ FlushPendingEvents(window); + const bool resizable_state = !(window->flags & (SDL_WINDOW_MAXIMIZED || SDL_WINDOW_FULLSCREEN)); + /* Maximized and fullscreen windows don't get resized, and the new size is ignored * if this is just to recalculate the min/max or aspect limits on a tiled window. */ - if (wind->floating || (window->tiled && !wind->limits_changed) || + if (resizable_state || (window->tiled && !wind->limits_changed) || wind->shell_surface_type == WAYLAND_SHELL_SURFACE_TYPE_CUSTOM) { if (!wind->scale_to_display) { wind->requested.logical_width = window->pending.w;