From a1e2160083fade1ccf0c1dacfea0c88c2ff8abd5 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Fri, 23 May 2025 17:24:52 +0800 Subject: [PATCH] menu: Fix sub-menu item height to match with other items. (#892) --- crates/ui/src/lib.rs | 6 +++--- crates/ui/src/{ => menu}/context_menu.rs | 2 +- crates/ui/src/menu/mod.rs | 8 ++++++++ crates/ui/src/{ => menu}/popup_menu.rs | 3 ++- 4 files changed, 14 insertions(+), 5 deletions(-) rename crates/ui/src/{ => menu}/context_menu.rs (99%) create mode 100644 crates/ui/src/menu/mod.rs rename crates/ui/src/{ => menu}/popup_menu.rs (99%) diff --git a/crates/ui/src/lib.rs b/crates/ui/src/lib.rs index 02194ca7..f6415797 100644 --- a/crates/ui/src/lib.rs +++ b/crates/ui/src/lib.rs @@ -3,6 +3,7 @@ mod event; mod focusable; mod icon; mod kbd; +mod menu; mod root; mod styled; mod svg_img; @@ -22,7 +23,6 @@ pub mod button; pub mod checkbox; pub mod clipboard; pub mod color_picker; -pub mod context_menu; pub mod description_list; pub mod divider; pub mod dock; @@ -39,7 +39,6 @@ pub mod list; pub mod modal; pub mod notification; pub mod popover; -pub mod popup_menu; pub mod progress; pub mod radio; pub mod resizable; @@ -65,6 +64,7 @@ pub use wry; pub use crate::Disableable; pub use event::InteractiveElementExt; pub use focusable::FocusableCycle; +pub use menu::{context_menu, popup_menu}; pub use root::{ContextModal, Root}; pub use styled::*; pub use time::*; @@ -96,7 +96,7 @@ pub fn init(cx: &mut App) { list::init(cx); modal::init(cx); popover::init(cx); - popup_menu::init(cx); + menu::init(cx); table::init(cx); } diff --git a/crates/ui/src/context_menu.rs b/crates/ui/src/menu/context_menu.rs similarity index 99% rename from crates/ui/src/context_menu.rs rename to crates/ui/src/menu/context_menu.rs index 7d200228..7e06e4b3 100644 --- a/crates/ui/src/context_menu.rs +++ b/crates/ui/src/menu/context_menu.rs @@ -7,7 +7,7 @@ use gpui::{ Pixels, Point, Position, Stateful, Style, Window, }; -use crate::popup_menu::PopupMenu; +use crate::menu::popup_menu::PopupMenu; pub trait ContextMenuExt: ParentElement + Sized { fn context_menu( diff --git a/crates/ui/src/menu/mod.rs b/crates/ui/src/menu/mod.rs new file mode 100644 index 00000000..4a6cb823 --- /dev/null +++ b/crates/ui/src/menu/mod.rs @@ -0,0 +1,8 @@ +use gpui::App; + +pub mod context_menu; +pub mod popup_menu; + +pub fn init(cx: &mut App) { + popup_menu::init(cx); +} diff --git a/crates/ui/src/popup_menu.rs b/crates/ui/src/menu/popup_menu.rs similarity index 99% rename from crates/ui/src/popup_menu.rs rename to crates/ui/src/menu/popup_menu.rs index 07f3b176..b99312d7 100644 --- a/crates/ui/src/popup_menu.rs +++ b/crates/ui/src/menu/popup_menu.rs @@ -787,6 +787,7 @@ impl PopupMenu { disabled, } => this.selected(hovered).disabled(*disabled).child( h_flex() + .items_start() .when(hovered, |this| { this.rounded(cx.theme().radius) .mx(-INNER_PADDING) @@ -794,9 +795,9 @@ impl PopupMenu { .bg(cx.theme().accent) .text_color(cx.theme().accent_foreground) }) - .items_start() .child( h_flex() + .min_h(ITEM_HEIGHT) .size_full() .items_center() .gap_x_1()