mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:17:44 +00:00
WindowServer: Don't crash when trying to open an empty menu.
This commit is contained in:
parent
3085e400bc
commit
627e06632a
2 changed files with 6 additions and 3 deletions
|
@ -23,6 +23,7 @@ public:
|
||||||
WSMenuBar* menu_bar() { return m_menubar; }
|
WSMenuBar* menu_bar() { return m_menubar; }
|
||||||
const WSMenuBar* menu_bar() const { 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(); }
|
int item_count() const { return m_items.size(); }
|
||||||
WSMenuItem* item(int i) { return m_items[i].ptr(); }
|
WSMenuItem* item(int i) { return m_items[i].ptr(); }
|
||||||
const WSMenuItem* item(int i) const { return m_items[i].ptr(); }
|
const WSMenuItem* item(int i) const { return m_items[i].ptr(); }
|
||||||
|
|
|
@ -387,9 +387,11 @@ void WSWindowManager::handle_menu_mouse_event(WSMenu& menu, WSMouseEvent& event)
|
||||||
if (m_current_menu == &menu)
|
if (m_current_menu == &menu)
|
||||||
return;
|
return;
|
||||||
close_current_menu();
|
close_current_menu();
|
||||||
auto& menu_window = menu.ensure_menu_window();
|
if (!menu.is_empty()) {
|
||||||
menu_window.move_to({ menu.rect_in_menubar().x(), menu.rect_in_menubar().bottom() });
|
auto& menu_window = menu.ensure_menu_window();
|
||||||
menu_window.set_visible(true);
|
menu_window.move_to({ menu.rect_in_menubar().x(), menu.rect_in_menubar().bottom() });
|
||||||
|
menu_window.set_visible(true);
|
||||||
|
}
|
||||||
m_current_menu = &menu;
|
m_current_menu = &menu;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue