git.lucas.co / cce-authenticator
login authentication (PAM + fingerprint)
git clone https://git.lucas.co/cce-authenticator.git

commit5009c7cf146c583408b152f79a48009b71c365b7
parentebdae1d809
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 | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 1298254..197c016 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -685,13 +685,16 @@ impl Application for AuthenticatorApp {
         if plate_color[3] > 0.001 {
             plate_color[3] = cce_ui::color::root_plate_opacity();
         }
-        let wr = cce_ui::layout::window_corner_radius().max(0.0);
-        pc.plate(
-            Rect { x: 0.0, y: 0.0, width: sw, height: sh },
-            (wr, wr, wr, wr),
-            plate_color,
-            cce_ui::layout::bevel_width(),
-        );
+        // PlateSpec (cce-ui RFC 7b): this plate already followed the shared
+        // window radius; the spec adds the corner-span widening so the arc
+        // matches the compositor's clip exactly.
+        pc.plate_spec(&cce_ui::scene::paint::PlateSpec {
+            rect: Rect { x: 0.0, y: 0.0, width: sw, height: sh },
+            color: plate_color,
+            blur: false,
+            window_corners: (true, true, true, true),
+            depth: cce_ui::layout::bevel_width(),
+        });
 
         // ── Layout ──
         let pad = 24.0f32;