From fb4669591aacf5677566cb3e7a470e23089a1dca Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 6 Dec 2023 08:05:58 -0700 Subject: [PATCH] Menu: align tree items with menu roots in MenuBar::layout --- src/widget/menu/flex.rs | 2 +- src/widget/menu/menu_bar.rs | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/widget/menu/flex.rs b/src/widget/menu/flex.rs index 17c7e104..e9560dbf 100644 --- a/src/widget/menu/flex.rs +++ b/src/widget/menu/flex.rs @@ -55,7 +55,7 @@ pub fn resolve<'a, E, Message, Renderer>( spacing: f32, align_items: Alignment, items: &[E], - tree: &mut [Tree], + tree: &mut [&mut Tree], ) -> Node where E: std::borrow::Borrow>, diff --git a/src/widget/menu/menu_bar.rs b/src/widget/menu/menu_bar.rs index a2bcdd3d..3b1be078 100644 --- a/src/widget/menu/menu_bar.rs +++ b/src/widget/menu/menu_bar.rs @@ -288,6 +288,12 @@ where .iter() .map(|root| &root.item) .collect::>(); + // the first children of the tree are the menu roots items + let mut tree_children = tree + .children + .iter_mut() + .map(|t| &mut t.children[0]) + .collect::>(); flex::resolve( &flex::Axis::Horizontal, renderer, @@ -296,8 +302,7 @@ where self.spacing, Alignment::Center, &children, - // the children of the tree are the menu roots - &mut tree.children, + &mut tree_children, ) }