From 87d96992ea331bf1e1c1c20647bc47abed42edfb Mon Sep 17 00:00:00 2001 From: Phil Weaver Date: Tue, 13 Sep 2016 14:34:22 -0700 Subject: [PATCH] Fix bug in magnification coordinate calculation. We were checking if a coordinate was inside its window before compensating for magnification. Bug: 31054088 Change-Id: I4993d84e877fcf3d01382b3cf1c10e2fab58dbba --- .../accessibility/AccessibilityManagerService.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 8dca14f132027..e00178f8ea411 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -3683,13 +3683,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { Rect boundsInScreen = mTempRect; focus.getBoundsInScreen(boundsInScreen); - // Clip to the window bounds. - Rect windowBounds = mTempRect1; - getWindowBounds(focus.getWindowId(), windowBounds); - if (!boundsInScreen.intersect(windowBounds)) { - return false; - } - // Apply magnification if needed. MagnificationSpec spec = getCompatibleMagnificationSpecLocked(focus.getWindowId()); if (spec != null && !spec.isNop()) { @@ -3697,6 +3690,13 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { boundsInScreen.scale(1 / spec.scale); } + // Clip to the window bounds. + Rect windowBounds = mTempRect1; + getWindowBounds(focus.getWindowId(), windowBounds); + if (!boundsInScreen.intersect(windowBounds)) { + return false; + } + // Clip to the screen bounds. Point screenSize = mTempPoint; mDefaultDisplay.getRealSize(screenSize);