WindowServer: Don't ignore mouse events after showing modal window (#1495)

Fixes #1464
This commit is contained in:
Alex Muscar 2020-03-25 15:26:33 +00:00 committed by GitHub
parent 30649ed93f
commit fefc2665d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
Notes: sideshowbarker 2024-07-19 08:07:54 +09:00

View file

@ -120,8 +120,14 @@ void MenuManager::refresh()
void MenuManager::event(Core::Event& event)
{
if (WindowManager::the().active_window_is_modal())
return Core::Object::event(event);
auto* active_window = WindowManager::the().active_window();
if (active_window && active_window->is_modal() && has_open_menu()) {
auto* topmost_menu = m_open_menu_stack.last().ptr();
ASSERT(topmost_menu);
// Always allow window menu interaction, even while a modal window is active.
if (!topmost_menu->window_menu_of())
return Core::Object::event(event);
}
if (static_cast<Event&>(event).is_mouse_event()) {
handle_mouse_event(static_cast<MouseEvent&>(event));