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

commit2cf8d9eb8a188490fa5b1d04cb05c5cc61b5548b
parentf5dd5706cc
authorLucas Galante <[email protected]>
date2026-06-15 12:42
Center window content and clip shadows completely when SSD is active

 src/server/window.rs | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/server/window.rs b/src/server/window.rs
index 635b6ea..8d81510 100644
--- a/src/server/window.rs
+++ b/src/server/window.rs
@@ -1351,7 +1351,13 @@ impl Window {
                 if toplevel.is_null() {
                     (0, 0)
                 } else {
-                    ((*toplevel).geometry.x, (*toplevel).geometry.y)
+                    let mut x = (*toplevel).geometry.x;
+                    let mut y = (*toplevel).geometry.y;
+                    if self.wm_requested.ssd {
+                        x = 0;
+                        y = 0;
+                    }
+                    (x, y)
                 }
             }
             _ => (0, 0),
@@ -1515,9 +1521,8 @@ impl Window {
         }
 
         self.surfaces.set_enabled(true);
-
         let margin = if self.wm_requested.ssd {
-            self.rendering_requested.border.width as i32
+            0
         } else {
             4
         };
@@ -1529,8 +1534,10 @@ impl Window {
         match self.impl_type {
             WindowImpl::Toplevel(toplevel) => {
                 if !toplevel.is_null() {
-                    surface_clip.x += (*toplevel).geometry.x;
-                    surface_clip.y += (*toplevel).geometry.y;
+                    let x = if self.wm_requested.ssd { 0 } else { (*toplevel).geometry.x };
+                    let y = if self.wm_requested.ssd { 0 } else { (*toplevel).geometry.y };
+                    surface_clip.x += x;
+                    surface_clip.y += y;
                 }
             }
             WindowImpl::Xwayland(xwindow) => {