diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c index e795b6305..1aace100f 100644 --- a/src/video/wayland/SDL_waylandwindow.c +++ b/src/video/wayland/SDL_waylandwindow.c @@ -713,7 +713,19 @@ void Wayland_ShowWindow(_THIS, SDL_Window *window) * display, because we need to create the decorations before possibly hiding * them immediately afterward. */ - Wayland_SetWindowBordered(_this, window, !(window->flags & SDL_WINDOW_BORDERLESS)); +#ifdef HAVE_LIBDECOR_H + if (c->shell.libdecor) { + /* ... but don't call it redundantly for libdecor, the decorator + * 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); + } + } else +#endif + { + Wayland_SetWindowBordered(_this, window, !(window->flags & SDL_WINDOW_BORDERLESS)); + } /* We're finally done putting the window together, raise if possible */ if (c->activation_manager) {