diff options
Diffstat (limited to 'Userland/Services/WindowServer/Window.cpp')
-rw-r--r-- | Userland/Services/WindowServer/Window.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Userland/Services/WindowServer/Window.cpp b/Userland/Services/WindowServer/Window.cpp index fab5fc03ab..a24de871f5 100644 --- a/Userland/Services/WindowServer/Window.cpp +++ b/Userland/Services/WindowServer/Window.cpp @@ -442,7 +442,7 @@ void Window::event(Core::Event& event) return; } - if (blocking_modal_window() && !is_capturing_input()) { + if (blocking_modal_window()) { // We still want to handle the WindowDeactivated event below when a new modal is // created to notify its parent window, despite it being "blocked by modal window". if (event.type() != Event::WindowDeactivated) @@ -660,6 +660,8 @@ bool Window::is_active() const Window* Window::blocking_modal_window() { auto maybe_blocker = WindowManager::the().for_each_window_in_modal_chain(*this, [&](auto& window) { + if (is_descendant_of(window)) + return IterationDecision::Continue; if (window.is_blocking() && this != &window) return IterationDecision::Break; return IterationDecision::Continue; |