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

commitb5d89c8dd52e134c1a76c487b30719326adc46e9
parent2e92f24915
authorLucas Galante <[email protected]>
date2026-09-18 15:35
fix: context menu labels in the menu font

`paint()` plus a hand-rolled `text_labels()` loop passed `None` for the
family — a TextLabel carries only a size — so the menu rendered in the
default sans while the surface under it wore the configured face.
`paint_with_labels` (cce-ui) draws plate and labels in one call and
carries the family with them.

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

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

diff --git a/src/plate_menu.rs b/src/plate_menu.rs
index 2b2f3fd..c0aa18d 100644
--- a/src/plate_menu.rs
+++ b/src/plate_menu.rs
@@ -229,11 +229,9 @@ impl TerminalApp {
         // bounds equal to the menu rect, which the engine's text-occlusion
         // clamp exempts, so they render inside the menu while the grid's
         // text beneath stays clamped.
-        context_menu::paint(pc);
-        let (mx, my) = (context_menu::x(), context_menu::y());
-        let bounds = Some([mx, my, mx + context_menu::w(), my + context_menu::h()]);
-        for l in context_menu::text_labels() {
-            pc.text_with(l.text, l.x, l.y, l.font_size, l.color, None, bounds);
-        }
+        // Labels come with the plate: a TextLabel carries no family, so the
+        // hand-rolled label loop that used to live here passed None and drew
+        // the menu in the default sans rather than the DE's menu font.
+        context_menu::paint_with_labels(pc);
     }
 }