Fix a bug in TouchInteractionService for fixed-display input rotation
DisplayManager display size seems to be pre-rotation, so adjust
logic in TouchInteractionService to account for that.
Bug: 179274888
Test: atest Launcher3Tests:com.android.launcher3.ui.TaplTestsLauncher3
Change-Id: Ie89d7b7d74c8bece8a2c109a0b350bc190356bf2
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index 4fc9770..338a6ef 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -496,6 +496,13 @@
Point sz = new Point();
display.getRealSize(sz);
if (rotation != Surface.ROTATION_0) {
+ if ((rotation % 2) != 0) {
+ // via display-manager, the display size is unrotated, so "rotate" its size
+ // to match the rotation we are transforming the event into.
+ final int tmpX = sz.x;
+ sz.x = sz.y;
+ sz.y = tmpX;
+ }
event.transform(InputChannelCompat.createRotationMatrix(rotation, sz.x, sz.y));
}
}