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

commit98057426b70ba83226a258fbe71d7b6ef57f8077
parent74a0f75d1c
authorLucas Galante <[email protected]>
date2026-08-05 14:31
fix: exempt status segments from the backplate corner clip

Status-bar segments draw their own module-box corners. The window
backplate clip (corner_radius x squircle span factor, ~35px at the
current config) is invisible on a bar-thin segment because the
half-extent cap keeps it inside the transparent band, but once a
segment EXPANDS for its in-surface menu the cap stops binding and the
clip carves visible sweeps into the menu box corners. Radius 0 for
status windows in both blur/clip paths (set_rendering_state and the
pan-path rebuild), which must agree since they drive the same nodes.

Co-Authored-By: Claude Fable 5 <[email protected]>

 src/server/window.rs | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/server/window.rs b/src/server/window.rs
index c513e09..cf60474 100644
--- a/src/server/window.rs
+++ b/src/server/window.rs
@@ -2027,6 +2027,13 @@ impl Window {
                 let w = self.rendering_sent.width as i32;
                 let h = self.rendering_sent.height as i32;
                 w.min(h) / 2
+            } else if is_status {
+                // Status segments draw their own module-box corners. The
+                // backplate clip is invisible on a bar-thin segment (the
+                // half-extent cap keeps it inside the transparent band) but
+                // carves visible sweeps into an EXPANDED segment's in-surface
+                // menu box once the cap stops binding.
+                0
             } else if self.wm_requested.ssd || is_cce_app {
                 (*self.server).wm.layout.backplate_corner_radius
             } else {
@@ -2470,6 +2477,10 @@ impl Window {
                     let w = self.rendering_sent.width as i32;
                     let h = self.rendering_sent.height as i32;
                     w.min(h) / 2
+                } else if is_status {
+                    // Same status exemption as set_rendering_state — the two
+                    // paths drive the same nodes and must agree.
+                    0
                 } else if self.wm_requested.ssd || is_cce_app {
                     (*self.server).wm.layout.backplate_corner_radius
                 } else {