WindowServer: Ensure menu visibility after pushing menu to the stack
We need to make sure the menu was pushed to the open menu stack before calling set_visible, as this may trigger cursor re-evaluation, which in turn expects the menu to be considered open. Fixes #10836
This commit is contained in:
parent
81786f6abe
commit
32d59257d6
Notes:
sideshowbarker
2024-07-18 01:13:52 +09:00
Author: https://github.com/tomuta Commit: https://github.com/SerenityOS/serenity/commit/32d59257d65 Pull-request: https://github.com/SerenityOS/serenity/pull/10885 Issue: https://github.com/SerenityOS/serenity/issues/10836
2 changed files with 2 additions and 1 deletions
|
@ -638,7 +638,6 @@ void Menu::do_popup(const Gfx::IntPoint& position, bool make_input, bool as_subm
|
||||||
}
|
}
|
||||||
|
|
||||||
window.move_to(adjusted_pos);
|
window.move_to(adjusted_pos);
|
||||||
set_visible(true);
|
|
||||||
MenuManager::the().open_menu(*this, make_input);
|
MenuManager::the().open_menu(*this, make_input);
|
||||||
WindowManager::the().did_popup_a_menu({});
|
WindowManager::the().did_popup_a_menu({});
|
||||||
}
|
}
|
||||||
|
|
|
@ -298,6 +298,8 @@ void MenuManager::open_menu(Menu& menu, bool as_current_menu)
|
||||||
|
|
||||||
m_open_menu_stack.append(menu);
|
m_open_menu_stack.append(menu);
|
||||||
|
|
||||||
|
menu.set_visible(true);
|
||||||
|
|
||||||
if (!menu.is_empty()) {
|
if (!menu.is_empty()) {
|
||||||
menu.redraw_if_theme_changed();
|
menu.redraw_if_theme_changed();
|
||||||
auto* window = menu.menu_window();
|
auto* window = menu.menu_window();
|
||||||
|
|
Loading…
Add table
Reference in a new issue