git.lucas.co / cce-designer
graphic design tool
git clone https://git.lucas.co/cce-designer.git

commit9d354d91a54a1fe513895809d4628cdbff4b5349
parentfa52f9435b
authorLucas Galante <[email protected]>
date2026-08-21 14:45
render: window-corner arcs read the shared radius, not the app override

This app's config.kdl overrides backplate corner_radius to 24 for its
own plates, which pane_plate_radii was also feeding to the window-corner
arcs — the scene viewer's lip drew at twice the silhouette/desktop-cell
radius on any machine with the override (invisible in a shadow session
that doesn't seed per-app configs). Window-corner arcs now come from
layout::window_corner_radius (the shared value the compositor clips
with); interior pane corners keep the app-styled nominal radius.

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

 src/render.rs | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/render.rs b/src/render.rs
index fb06818..0a60ad1 100644
--- a/src/render.rs
+++ b/src/render.rs
@@ -38,7 +38,12 @@ impl State {
     /// the squircles of the sibling panes around them.
     fn pane_plate_radii(&self, x: f32, y: f32, w: f32, h: f32) -> (f32, f32, f32, f32) {
         let nominal = cce_ui::layout::plate_corner_radius();
-        let window_r = colors::backplate_corner_radius() * cce_ui::layout::corner_span_factor();
+        // window_corner_radius, NOT the app-merged backplate radius: the
+        // designer's config.kdl overrides the backplate radius for its own
+        // plates, but the compositor clips the window (and the desktop grid
+        // draws its cells) from the SHARED value — window-corner arcs must
+        // follow the silhouette, not the app styling.
+        let window_r = cce_ui::layout::window_corner_radius() * cce_ui::layout::corner_span_factor();
         let e = 1.5;
         let left = x <= e;
         let top = y <= e;