git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit5aa72673ab366379a24982a1d90b8146183c4636
parent1a69486120
authorLucas Galante <[email protected]>
date2026-06-15 12:22
Allow client-requested CSD mode while keeping compositor border active

 src/server/xdg_toplevel.rs | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/server/xdg_toplevel.rs b/src/server/xdg_toplevel.rs
index 0726c28..a8a5ea5 100644
--- a/src/server/xdg_toplevel.rs
+++ b/src/server/xdg_toplevel.rs
@@ -216,7 +216,11 @@ impl XdgToplevel {
         
         if !self.decoration.is_null() {
             let mode = if scheduled.ssd {
-                ffi::wlr_xdg_toplevel_decoration_v1_mode_WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE
+                if (*(*self.decoration).wlr_decoration).requested_mode == ffi::wlr_xdg_toplevel_decoration_v1_mode_WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE {
+                    ffi::wlr_xdg_toplevel_decoration_v1_mode_WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE
+                } else {
+                    ffi::wlr_xdg_toplevel_decoration_v1_mode_WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE
+                }
             } else {
                 ffi::wlr_xdg_toplevel_decoration_v1_mode_WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE
             };