diff --git a/src/widgets/menu/menu_bar_overlay.rs b/src/widgets/menu/menu_bar_overlay.rs index 2622666e..38acb404 100644 --- a/src/widgets/menu/menu_bar_overlay.rs +++ b/src/widgets/menu/menu_bar_overlay.rs @@ -462,6 +462,27 @@ where ); } + fn overlay<'c>( + &'c mut self, + layout: Layout<'_>, + renderer: &Renderer, + ) -> Option> { + let bar = self.tree.state.downcast_ref::(); + let active = bar.active_root?; + let mut lc = layout.children(); + let _bar_bounds = lc.next()?.bounds(); + let _roots_layout = lc.next()?; + let menu_layouts_layout = lc.next()?; // Node{0, [menu_node...]} + let mut menu_layouts = menu_layouts_layout.children(); // [menu_node...] + let active_root = &mut self.roots[active]; + let active_tree = &mut self.tree.children[active]; + let menu = active_root.menu.as_mut()?; + let menu_tree = &mut active_tree.children[1]; + let menu_layout = menu_layouts.next()?; + + menu.overlay(menu_tree, menu_layout, renderer, Vector::ZERO) + } + fn draw( &self, renderer: &mut Renderer,