Selaa lähdekoodia

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.
Gunnar Beutner 4 vuotta sitten
vanhempi
commit
f1ac0b6a5a
1 muutettua tiedostoa jossa 3 lisäystä ja 1 poistoa
  1. 3 1
      Userland/Services/WindowServer/WindowManager.cpp

+ 3 - 1
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;
     });