diff --git a/Userland/Libraries/LibGUI/Window.cpp b/Userland/Libraries/LibGUI/Window.cpp index b59cbc1fa6..d0e79ae667 100644 --- a/Userland/Libraries/LibGUI/Window.cpp +++ b/Userland/Libraries/LibGUI/Window.cpp @@ -1188,16 +1188,22 @@ Gfx::Bitmap* Window::back_bitmap() return m_back_store ? &m_back_store->bitmap() : nullptr; } -Menu& Window::add_menu(String name) +ErrorOr> Window::try_add_menu(String name) { - Menu& menu = m_menubar->add_menu({}, move(name)); + auto menu = TRY(m_menubar->try_add_menu({}, move(name))); if (m_window_id) { - menu.realize_menu_if_needed(); - WindowServerConnection::the().async_add_menu(m_window_id, menu.menu_id()); + menu->realize_menu_if_needed(); + WindowServerConnection::the().async_add_menu(m_window_id, menu->menu_id()); } return menu; } +Menu& Window::add_menu(String name) +{ + auto menu = MUST(try_add_menu(move(name))); + return *menu; +} + bool Window::is_modified() const { if (!m_window_id) diff --git a/Userland/Libraries/LibGUI/Window.h b/Userland/Libraries/LibGUI/Window.h index 6723b9ee09..3e5ee31bbf 100644 --- a/Userland/Libraries/LibGUI/Window.h +++ b/Userland/Libraries/LibGUI/Window.h @@ -202,6 +202,7 @@ public: void did_disable_focused_widget(Badge); Menu& add_menu(String name); + ErrorOr> try_add_menu(String name); void flush_pending_paints_immediately();