From f1ac0b6a5ae6c97ea572e46b1707d2f75ecb6d60 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Tue, 22 Jun 2021 06:42:27 +0200 Subject: [PATCH] WindowServer: Send events once when global cursor tracking is enabled Previously we'd send mouse events twice if the target window had global cursor tracking enabled. --- Userland/Services/WindowServer/WindowManager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Userland/Services/WindowServer/WindowManager.cpp b/Userland/Services/WindowServer/WindowManager.cpp index 9e942ec4db..2544551709 100644 --- a/Userland/Services/WindowServer/WindowManager.cpp +++ b/Userland/Services/WindowServer/WindowManager.cpp @@ -1007,8 +1007,10 @@ void WindowManager::process_mouse_event(MouseEvent& event) return; // 2. Send the mouse event to all windows with global cursor tracking enabled. + // The active input tracking window is excluded here because we're sending the event to it + // in the next step. m_window_stack.for_each_visible_window_from_front_to_back([&](Window& window) { - if (window.global_cursor_tracking()) + if (window.global_cursor_tracking() && &window != m_active_input_tracking_window) deliver_mouse_event(window, event, false); return IterationDecision::Continue; });