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

commita9fd543fbfdf778ee83a7664a7a21a4338eb0f77
parentaee176d2d2
authorLucas Galante <[email protected]>
date2026-08-31 14:47
fix: context menus draw as the toolkit's frosted plate

The designer still rendered its context menus (node/viewport
right-click and the plate corner menus — one shared state) through the
legacy extra_quads view: a square, opaque, pre-frost rectangle. Call
context_menu::paint instead — the lit plate path the toolkit grew in
cce-ui@063177b: rounded corners, translucent face, blur-behind frost,
the material every other floating surface wears. Labels unchanged.

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

 src/render.rs | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/render.rs b/src/render.rs
index 20bfd00..2b332d9 100644
--- a/src/render.rs
+++ b/src/render.rs
@@ -169,13 +169,15 @@ impl State {
         self.append_dock_drag_overlay(&mut pc);
         self.append_plate_corners(&mut pc);
 
-        // The node right-click context menu floats above everything (drawn last).
+        // The context menu (node/viewport right-click AND the plate corner
+        // menus — one shared state) floats above everything, drawn last as
+        // the toolkit's lit plate: rounded, translucent, frosted — the
+        // material every other floating surface wears. NOT the legacy
+        // extra_quads loop, which is the square opaque pre-frost look.
         // Its labels carry bounds equal to the menu rect so the engine's text-
         // occlusion clamp (which registers the menu rect) exempts them.
         if cce_ui::widget::context_menu::is_visible() {
-            for (qx, qy, qw, qh, qc) in cce_ui::widget::context_menu::extra_quads() {
-                pc.quad(rect(qx, qy, qw, qh), qc);
-            }
+            cce_ui::widget::context_menu::paint(&mut pc);
             let mx = cce_ui::widget::context_menu::x();
             let my = cce_ui::widget::context_menu::y();
             let bounds = Some([