summaryrefslogtreecommitdiff
path: root/Userland/Services/WindowServer/Window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Services/WindowServer/Window.cpp')
-rw-r--r--Userland/Services/WindowServer/Window.cpp4
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;