wayland: Call SetWindowBordered at the end of ShowWindow
diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c
index c35289c..a154785 100644
--- a/src/video/wayland/SDL_waylandwindow.c
+++ b/src/video/wayland/SDL_waylandwindow.c
@@ -700,7 +700,6 @@ void Wayland_ShowWindow(_THIS, SDL_Window *window)
/* Restore state that was set prior to this call */
Wayland_SetWindowTitle(_this, window);
- Wayland_SetWindowBordered(_this, window, (window->flags & SDL_WINDOW_BORDERLESS) == 0);
if (window->flags & SDL_WINDOW_MAXIMIZED) {
Wayland_MaximizeWindow(_this, window);
}
@@ -732,6 +731,15 @@ void Wayland_ShowWindow(_THIS, SDL_Window *window)
}
}
}
+
+ /* Unlike the rest of window state we have to set this _after_ flushing the
+ * display, because we need to create the decorations before possibly hiding
+ * them immediately afterward. But don't call it redundantly, the protocol
+ * may not interpret a redundant call nicely and cause weird stuff to happen
+ */
+ if (window->flags & SDL_WINDOW_BORDERLESS) {
+ Wayland_SetWindowBordered(_this, window, SDL_FALSE);
+ }
}
void Wayland_HideWindow(_THIS, SDL_Window *window)