1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 23:37:35 +00:00

WindowServer: Don't crash when trying to open an empty menu.

This commit is contained in:
Andreas Kling 2019-02-12 14:28:39 +01:00
parent 3085e400bc
commit 627e06632a
2 changed files with 6 additions and 3 deletions

View file

@ -23,6 +23,7 @@ public:
WSMenuBar* menu_bar() { return m_menubar; }
const WSMenuBar* menu_bar() const { return m_menubar; }
bool is_empty() const { return m_items.is_empty(); }
int item_count() const { return m_items.size(); }
WSMenuItem* item(int i) { return m_items[i].ptr(); }
const WSMenuItem* item(int i) const { return m_items[i].ptr(); }

View file

@ -387,9 +387,11 @@ void WSWindowManager::handle_menu_mouse_event(WSMenu& menu, WSMouseEvent& event)
if (m_current_menu == &menu)
return;
close_current_menu();
auto& menu_window = menu.ensure_menu_window();
menu_window.move_to({ menu.rect_in_menubar().x(), menu.rect_in_menubar().bottom() });
menu_window.set_visible(true);
if (!menu.is_empty()) {
auto& menu_window = menu.ensure_menu_window();
menu_window.move_to({ menu.rect_in_menubar().x(), menu.rect_in_menubar().bottom() });
menu_window.set_visible(true);
}
m_current_menu = &menu;
return;
}