[go: nahoru, domu]

syncInputWindows for mouse events

Add back the syncInputWindows calls for mouse events, because there are
tests that rely on this behaviour (they might inject only a few events,
which is not very realistic, but we still have to support this).

Bug: 137072767
Bug: 138263890
Test: atest android.view.cts.HoverTest
Change-Id: I37b621bc6dc6a844ca86324962124bb06857b906
(cherry picked from commit 4be12ea1e26e303e1cb0b77a66048c3234c9470f)
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index fb57d73..436a5c7 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -7670,10 +7670,12 @@
             isDown = motionEvent.getAction() == MotionEvent.ACTION_DOWN;
             isUp = motionEvent.getAction() == MotionEvent.ACTION_UP;
         }
+        final boolean isMouseEvent = ev.getSource() == InputDevice.SOURCE_MOUSE;
 
         // For ACTION_DOWN, syncInputTransactions before injecting input.
+        // For all mouse events, also sync before injecting.
         // For ACTION_UP, sync after injecting.
-        if (isDown) {
+        if (isDown || isMouseEvent) {
             syncInputTransactions();
         }
         final boolean result =