LibGUI: Unbreak popup menus, now that invalid menus have ID -1.

This commit is contained in:
Andreas Kling 2019-05-26 01:07:30 +02:00
parent 41ebb3eba3
commit 90dbf689c0
Notes: sideshowbarker 2024-07-19 13:57:11 +09:00
3 changed files with 17 additions and 12 deletions

View file

@ -25,24 +25,24 @@ int GMenuBar::realize_menubar()
void GMenuBar::unrealize_menubar()
{
if (!m_menubar_id)
if (m_menubar_id == -1)
return;
WSAPI_ClientMessage request;
request.type = WSAPI_ClientMessage::Type::DestroyMenubar;
request.menu.menubar_id = m_menubar_id;
GEventLoop::current().sync_request(request, WSAPI_ServerMessage::Type::DidDestroyMenubar);
m_menubar_id = 0;
m_menubar_id = -1;
}
void GMenuBar::notify_added_to_application(Badge<GApplication>)
{
ASSERT(!m_menubar_id);
ASSERT(m_menubar_id == -1);
m_menubar_id = realize_menubar();
ASSERT(m_menubar_id > 0);
ASSERT(m_menubar_id != -1);
for (auto& menu : m_menus) {
ASSERT(menu);
int menu_id = menu->realize_menu();
ASSERT(menu_id > 0);
ASSERT(menu_id != -1);
WSAPI_ClientMessage request;
request.type = WSAPI_ClientMessage::Type::AddMenuToMenubar;
request.menu.menubar_id = m_menubar_id;