diff --git a/crates/egui/src/menu.rs b/crates/egui/src/menu.rs index fa99cebbd2d..ef84451db5f 100644 --- a/crates/egui/src/menu.rs +++ b/crates/egui/src/menu.rs @@ -76,11 +76,13 @@ impl std::ops::DerefMut for BarState { } fn set_menu_style(style: &mut Style) { - style.spacing.button_padding = vec2(2.0, 0.0); - style.visuals.widgets.active.bg_stroke = Stroke::NONE; - style.visuals.widgets.hovered.bg_stroke = Stroke::NONE; - style.visuals.widgets.inactive.weak_bg_fill = Color32::TRANSPARENT; - style.visuals.widgets.inactive.bg_stroke = Stroke::NONE; + if style.compact_menu_style { + style.spacing.button_padding = vec2(2.0, 0.0); + style.visuals.widgets.active.bg_stroke = Stroke::NONE; + style.visuals.widgets.hovered.bg_stroke = Stroke::NONE; + style.visuals.widgets.inactive.weak_bg_fill = Color32::TRANSPARENT; + style.visuals.widgets.inactive.bg_stroke = Stroke::NONE; + } } /// The menu bar goes well in a [`crate::TopBottomPanel::top`], diff --git a/crates/egui/src/style.rs b/crates/egui/src/style.rs index 4d227f63bf8..d0b368f0aba 100644 --- a/crates/egui/src/style.rs +++ b/crates/egui/src/style.rs @@ -332,6 +332,9 @@ pub struct Style { /// The animation that should be used when scrolling a [`crate::ScrollArea`] using e.g. [`Ui::scroll_to_rect`]. pub scroll_animation: ScrollAnimation, + + /// Use a more compact style for menus. + pub compact_menu_style: bool, } #[test] @@ -1277,6 +1280,7 @@ impl Default for Style { url_in_tooltip: false, always_scroll_the_only_direction: false, scroll_animation: ScrollAnimation::default(), + compact_menu_style: true, } } } @@ -1578,6 +1582,7 @@ impl Style { url_in_tooltip, always_scroll_the_only_direction, scroll_animation, + compact_menu_style, } = self; crate::Grid::new("_options").show(ui, |ui| { @@ -1683,6 +1688,8 @@ impl Style { #[cfg(debug_assertions)] ui.collapsing("🐛 Debug", |ui| debug.ui(ui)); + ui.checkbox(compact_menu_style, "Compact menu style"); + ui.checkbox(explanation_tooltips, "Explanation tooltips") .on_hover_text( "Show explanatory text when hovering DragValue:s and other egui widgets",