diff --git a/Userland/Libraries/LibGUI/Menu.cpp b/Userland/Libraries/LibGUI/Menu.cpp index 7eaca2aacd..b84323e823 100644 --- a/Userland/Libraries/LibGUI/Menu.cpp +++ b/Userland/Libraries/LibGUI/Menu.cpp @@ -64,6 +64,14 @@ void Menu::add_action(NonnullRefPtr action) MUST(try_add_action(move(action))); } +void Menu::remove_all_actions() +{ + for (auto& item : m_items) { + WindowServerConnection::the().async_remove_menu_item(m_menu_id, item.identifier()); + } + m_items.clear(); +} + ErrorOr> Menu::try_add_submenu(String name) { // NOTE: We grow the vector first, to get allocation failure handled immediately. diff --git a/Userland/Libraries/LibGUI/Menu.h b/Userland/Libraries/LibGUI/Menu.h index 2f144b6e60..3950ca4448 100644 --- a/Userland/Libraries/LibGUI/Menu.h +++ b/Userland/Libraries/LibGUI/Menu.h @@ -39,6 +39,7 @@ public: void add_action(NonnullRefPtr); void add_separator(); Menu& add_submenu(String name); + void remove_all_actions(); void popup(const Gfx::IntPoint& screen_position, const RefPtr& default_action = nullptr); void dismiss();