git.lucas.co / cce-system-interface
system settings
git clone https://git.lucas.co/cce-system-interface.git

commit1b663a8533734804351efa510c7f6b43a1fb5a70
parent2c565cd8c8
authorLucas Galante <[email protected]>
date2026-08-25 13:51
feat: root plate onto PlateSpec (cce-ui RFC 7b-2)

The root plate emits through PaintCtx::plate_spec: all four corners are
window corners, so the perimeter follows the SHARED silhouette curve the
compositor clips with — the previous radius left the corner arc detached
from the clip. Verified: diffs confined to the corner arcs.

 src/main.rs | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index d5e9b85..30f9bb3 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -290,8 +290,15 @@ impl cce_ui::engine::Application for SystemInterface {
             if plate[3] > 0.001 {
                 plate[3] = cce_ui::color::root_plate_opacity();
             }
-            let r = 12.0f32;
-            pc.plate(Rect { x: 0.0, y: 0.0, width, height }, (r, r, r, r), plate, cce_ui::layout::bevel_width());
+            // PlateSpec (cce-ui RFC 7b): the hardcoded r=12 detached this
+            // plate's corners from the compositor's silhouette clip.
+            pc.plate_spec(&cce_ui::scene::paint::PlateSpec {
+                rect: Rect { x: 0.0, y: 0.0, width, height },
+                color: plate,
+                blur: false,
+                window_corners: (true, true, true, true),
+                depth: cce_ui::layout::bevel_width(),
+            });
             let sb_h = self.status_height;
             let depth = cce_ui::layout::bar_wall_width().min(sb_h * 0.6);
             pc.recess_edges(