From 946bc888db2a19dc0545480f517b96bab3ee9f9f Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Fri, 29 Mar 2024 12:15:03 +0100 Subject: [PATCH] Hide shortcut text on zoom buttons if `zoom_with_keyboard` is false (#4262) --- crates/egui/src/gui_zoom.rs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/crates/egui/src/gui_zoom.rs b/crates/egui/src/gui_zoom.rs index c4b5deb5..bde60f43 100644 --- a/crates/egui/src/gui_zoom.rs +++ b/crates/egui/src/gui_zoom.rs @@ -70,10 +70,20 @@ pub fn zoom_out(ctx: &Context) { /// /// This is meant to be called from within a menu (See [`Ui::menu_button`]). pub fn zoom_menu_buttons(ui: &mut Ui) { + fn button(ctx: &Context, text: &str, shortcut: &KeyboardShortcut) -> Button<'static> { + let btn = Button::new(text); + let zoom_with_keyboard = ctx.options(|o| o.zoom_with_keyboard); + if zoom_with_keyboard { + btn.shortcut_text(ctx.format_shortcut(shortcut)) + } else { + btn + } + } + if ui .add_enabled( ui.ctx().zoom_factor() < MAX_ZOOM_FACTOR, - Button::new("Zoom In").shortcut_text(ui.ctx().format_shortcut(&kb_shortcuts::ZOOM_IN)), + button(ui.ctx(), "Zoom In", &kb_shortcuts::ZOOM_IN), ) .clicked() { @@ -84,8 +94,7 @@ pub fn zoom_menu_buttons(ui: &mut Ui) { if ui .add_enabled( ui.ctx().zoom_factor() > MIN_ZOOM_FACTOR, - Button::new("Zoom Out") - .shortcut_text(ui.ctx().format_shortcut(&kb_shortcuts::ZOOM_OUT)), + button(ui.ctx(), "Zoom Out", &kb_shortcuts::ZOOM_OUT), ) .clicked() { @@ -96,8 +105,7 @@ pub fn zoom_menu_buttons(ui: &mut Ui) { if ui .add_enabled( ui.ctx().zoom_factor() != 1.0, - Button::new("Reset Zoom") - .shortcut_text(ui.ctx().format_shortcut(&kb_shortcuts::ZOOM_RESET)), + button(ui.ctx(), "Reset Zoom", &kb_shortcuts::ZOOM_RESET), ) .clicked() {