From e6c826ffc3b961fb2637b14124d1c4395735727b Mon Sep 17 00:00:00 2001 From: Shannon Booth Date: Sun, 12 Jan 2020 16:01:15 +1300 Subject: [PATCH] WindowServer: Fix non-submenus being closed when set as current menu set_current_menu() was indiscriminately closing all menus when the current menu is not a submenu. We should only close menus not in lineage to the one being closed. --- Servers/WindowServer/WSMenuManager.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Servers/WindowServer/WSMenuManager.cpp b/Servers/WindowServer/WSMenuManager.cpp index 26c4780678..9a14fbc2a2 100644 --- a/Servers/WindowServer/WSMenuManager.cpp +++ b/Servers/WindowServer/WSMenuManager.cpp @@ -389,8 +389,12 @@ void WSMenuManager::open_menu(WSMenu& menu) void WSMenuManager::set_current_menu(WSMenu* menu, bool is_submenu) { - if (!is_submenu) - close_everyone(); + if (!is_submenu) { + if (menu) + close_everyone_not_in_lineage(*menu); + else + close_everyone(); + } if (!menu) { m_current_menu = nullptr;