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

commitd194ba5951bd29c2a37728f3c1e86600d0829d68
parent6ee536daab
authorLucas Galante <[email protected]>
date2026-06-27 14:07
fix: force server side decorations to eliminate client CSD borders and shadows

 src/server/xdg_toplevel.rs | 21 ++-------------------
 1 file changed, 2 insertions(+), 19 deletions(-)

diff --git a/src/server/xdg_toplevel.rs b/src/server/xdg_toplevel.rs
index 4c671da..b2e1098 100644
--- a/src/server/xdg_toplevel.rs
+++ b/src/server/xdg_toplevel.rs
@@ -221,15 +221,7 @@ impl XdgToplevel {
         ffi::wlr_xdg_toplevel_set_resizing(self.wlr_toplevel, scheduled.resizing);
         
         if !self.decoration.is_null() {
-            let mode = if scheduled.ssd {
-                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
-            };
+            let mode = ffi::wlr_xdg_toplevel_decoration_v1_mode_WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE;
             ffi::wlr_xdg_toplevel_decoration_v1_set_mode((*self.decoration).wlr_decoration, mode);
         }
 
@@ -794,16 +786,7 @@ unsafe extern "C" fn handle_decoration_request_mode(listener: *mut ffi::wl_liste
     (*window).set_decoration_hint(hint);
 
     if ffi::river_wlr_xdg_surface_get_initialized(base) {
-        let scheduled_ssd = (*window).configure_scheduled.ssd;
-        let mode = if scheduled_ssd {
-            if (*(*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
-        };
+        let mode = ffi::wlr_xdg_toplevel_decoration_v1_mode_WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE;
         ffi::wlr_xdg_toplevel_decoration_v1_set_mode((*decoration).wlr_decoration, mode);
     }
 }