From c0959dba17ec9971876bf7bc880a21592183de1c Mon Sep 17 00:00:00 2001 From: skylar taylor-barrick Date: Thu, 22 Oct 2026 21:02:55 -0600 Subject: [PATCH] #130: menu bar titles use the 13 pt menu text, like their menus #130 styled the menus' items with theme::menu_style through MenuConfig, which egui applies to submenus only. The bar's own titles kept egui's default 12 pt, dimmer button text. MenuBar::style takes the same style, so the titles and their menus now share one size and colour, as in a native menu bar. The #130 test now checks the File title too; without this change it fails at 12 pt. --- crates/ui-egui/src/menus.rs | 3 ++- crates/ui-egui/tests/panels_ui.rs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/ui-egui/src/menus.rs b/crates/ui-egui/src/menus.rs index 1d760d0c0..d4742ff59 100644 --- a/crates/ui-egui/src/menus.rs +++ b/crates/ui-egui/src/menus.rs @@ -904,7 +904,8 @@ pub fn menu_bar(app: &mut FilmcraftApp, ui: &mut egui::Ui) { let labels = app.session.prefs.labels.clone(); let ctx = ui.ctx().clone(); let mut clicked: Option = None; - egui::MenuBar::new().config(egui::containers::menu::MenuConfig::new().style(crate::theme::menu_style)).ui(ui, |ui| { + // The bar's titles and their menus share one size and colour, as in a native menu bar. + egui::MenuBar::new().style(crate::theme::menu_style).config(egui::containers::menu::MenuConfig::new().style(crate::theme::menu_style)).ui(ui, |ui| { let mut titles = Vec::with_capacity(MENUS.len()); for top in MENUS { let mine: Vec<&MenuItem> = items.iter().filter(|i| i.path.first().map(String::as_str) == Some(top)).collect(); diff --git a/crates/ui-egui/tests/panels_ui.rs b/crates/ui-egui/tests/panels_ui.rs index 3baf555b2..150f4d0bf 100644 --- a/crates/ui-egui/tests/panels_ui.rs +++ b/crates/ui-egui/tests/panels_ui.rs @@ -836,7 +836,7 @@ fn menu_bar_menus_use_the_13pt_menu_text() { let mut d = Driver::demo(); d.click("menu.File"); d.frames(3); - for id in ["menu.file.open", "menu.file.save", "menu.file.saveAs"] { + for id in ["menu.File", "menu.file.open", "menu.file.save", "menu.file.saveAs"] { let v = d.ok("ui.elements", json!({"prefix": id})); let e = v.as_array().unwrap().iter().find(|e| e["id"] == json!(id)).unwrap_or_else(|| panic!("no menu item {id}")).clone(); let label = e["label"].as_str().unwrap().to_string();