From db22454b3ace9ad235b0b6ed11eaebd597c3dfdb Mon Sep 17 00:00:00 2001 From: Floyd Wang Date: Mon, 17 Nov 2025 11:32:14 +0800 Subject: [PATCH] menu: Fix icon width to tidy indent in `PopupMenuItem`. (#1620) Fix the issue of alignment after selection. | Before | After | | - | - | | image | SCR-20251117-kjik | --- crates/ui/src/menu/popup_menu.rs | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/crates/ui/src/menu/popup_menu.rs b/crates/ui/src/menu/popup_menu.rs index c57d5785..8a7d8695 100644 --- a/crates/ui/src/menu/popup_menu.rs +++ b/crates/ui/src/menu/popup_menu.rs @@ -970,26 +970,17 @@ impl PopupMenu { _: &mut Window, _: &mut Context, ) -> Option { - let icon_placeholder = if has_icon { Some(Icon::empty()) } else { None }; - if !has_icon { return None; } - let icon = h_flex() - .w_3p5() - .h_3p5() - .justify_center() - .text_sm() - .map(|this| { - if let Some(icon) = icon { - this.child(icon.clone().xsmall()) - } else { - this.children(icon_placeholder.clone()) - } - }); + let icon = if let Some(icon) = icon { + icon.clone() + } else { + Icon::empty() + }; - Some(icon) + Some(icon.xsmall()) } #[inline] @@ -1070,7 +1061,7 @@ impl PopupMenu { .items_center() .gap_x_1() .children(Self::render_icon(has_icon, None, window, cx)) - .child(label.clone()), + .child(div().flex_1().child(label.clone())), ), PopupMenuItem::ElementItem { render,