From f7e0b9746a2e0642b4718a3593d28e4ecb82ed69 Mon Sep 17 00:00:00 2001 From: Jonathan Rubenstein Date: Fri, 11 Jul 2025 18:58:17 +0300 Subject: [PATCH] [client] wayland: libdecor handles borderless Added missing borderless functionality to libdecor_shellInit when win:borderless is set to true This works properly when going full screen as well --- .../displayservers/Wayland/desktops/libdecor/libdecor.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/client/displayservers/Wayland/desktops/libdecor/libdecor.c b/client/displayservers/Wayland/desktops/libdecor/libdecor.c index 96c9875f..4dc0c761 100644 --- a/client/displayservers/Wayland/desktops/libdecor/libdecor.c +++ b/client/displayservers/Wayland/desktops/libdecor/libdecor.c @@ -46,6 +46,7 @@ typedef struct LibDecorState int32_t width, height; bool needsResize; bool fullscreen; + bool borderless; uint32_t resizeSerial; } LibDecorState; @@ -147,6 +148,10 @@ static bool libdecor_shellInit( if (maximize) libdecor_frame_set_maximized(state.libdecorFrame); + if (borderless) + libdecor_frame_set_visibility(state.libdecorFrame, false); + state.borderless = borderless; + if (resizable) libdecor_frame_set_capabilities(state.libdecorFrame, LIBDECOR_ACTION_RESIZE); @@ -183,7 +188,8 @@ static void libdecor_setFullscreen(bool fs) else libdecor_frame_unset_fullscreen(state.libdecorFrame); - libdecor_frame_set_visibility(state.libdecorFrame, !fs); + if (!state.borderless) + libdecor_frame_set_visibility(state.libdecorFrame, !fs); } static bool libdecor_getFullscreen(void)