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

WindowServer: Fix menu over-drawing

We only need to re-draw the item being selected and the item being
deselected. We also don't care anymore if applets were added or
removed as we no longer have a global menu bar.
This commit is contained in:
Tom 2021-07-18 14:38:34 -06:00 committed by Andreas Kling
parent 8a4971f908
commit 7ae46ae218
6 changed files with 114 additions and 83 deletions

View file

@ -43,6 +43,7 @@ void MenuManager::refresh()
{
ClientConnection::for_each_client([&](ClientConnection& client) {
client.for_each_menu([&](Menu& menu) {
dbgln("MenuManager::refresh {}", &menu);
menu.redraw();
return IterationDecision::Continue;
});
@ -220,7 +221,6 @@ void MenuManager::close_everyone()
}
m_open_menu_stack.clear();
clear_current_menu();
refresh();
}
void MenuManager::close_everyone_not_in_lineage(Menu& menu)
@ -247,7 +247,6 @@ void MenuManager::close_menus(const Vector<Menu&>& menus)
return entry == &menu;
});
}
refresh();
}
static void collect_menu_subtree(Menu& menu, Vector<Menu&>& menus)
@ -313,8 +312,6 @@ void MenuManager::open_menu(Menu& menu, bool as_current_menu)
// other menu is current
set_current_menu(&menu);
}
refresh();
}
void MenuManager::clear_current_menu()