git.lucas.co / cce-terminal
terminal emulator
git clone https://git.lucas.co/cce-terminal.git

commited42cfd4b3244f9379a6a45b6a56f25e1b9cbd94
parent0220493aaa
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 | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index aca95f9..b175574 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -688,9 +688,15 @@ impl Application for TerminalApp {
         if plate[3] > 0.001 {
             plate[3] = cce_ui::color::root_plate_opacity();
         }
-        let radius = cce_ui::colors::root_plate_corner_radius();
+        // PlateSpec (cce-ui RFC 7b): the root plate wears the silhouette arc.
         let frame = Rect { x: 0.0, y: 0.0, width: w, height: h };
-        pc.plate(frame, (radius, radius, radius, radius), plate, cce_ui::layout::bevel_width());
+        pc.plate_spec(&cce_ui::scene::paint::PlateSpec {
+            rect: frame,
+            color: plate,
+            blur: false,
+            window_corners: (true, true, true, true),
+            depth: cce_ui::layout::bevel_width(),
+        });
 
         let rows = self.rows as usize;
         let pad = self.pad;