mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-06 00:25:12 +00:00
WindowServer: Add MenuManager helper to find closest open ancestor
This commit is contained in:
committed by
Andreas Kling
parent
db852548ce
commit
4489f9dbef
@@ -229,6 +229,14 @@ void MenuManager::close_everyone()
|
||||
clear_current_menu();
|
||||
}
|
||||
|
||||
Menu* MenuManager::closest_open_ancestor_of(Menu const& other) const
|
||||
{
|
||||
for (auto& menu : m_open_menu_stack.in_reverse())
|
||||
if (menu->is_menu_ancestor_of(other))
|
||||
return menu.ptr();
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void MenuManager::close_everyone_not_in_lineage(Menu& menu)
|
||||
{
|
||||
Vector<Menu&> menus_to_close;
|
||||
|
||||
@@ -26,6 +26,7 @@ public:
|
||||
bool has_open_menu() const { return !m_open_menu_stack.is_empty(); }
|
||||
|
||||
Menu* current_menu() { return m_current_menu.ptr(); }
|
||||
Menu* closest_open_ancestor_of(Menu const&) const;
|
||||
void set_current_menu(Menu*);
|
||||
void clear_current_menu();
|
||||
void open_menu(Menu&, bool as_current_menu = true);
|
||||
|
||||
Reference in New Issue
Block a user