Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87d96992 authored by Phil Weaver's avatar Phil Weaver
Browse files

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
parent cb443c52
Loading
Loading
Loading
Loading
+7 −7
Original line number Original line Diff line number Diff line
@@ -3683,13 +3683,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
                Rect boundsInScreen = mTempRect;
                Rect boundsInScreen = mTempRect;
                focus.getBoundsInScreen(boundsInScreen);
                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.
                // Apply magnification if needed.
                MagnificationSpec spec = getCompatibleMagnificationSpecLocked(focus.getWindowId());
                MagnificationSpec spec = getCompatibleMagnificationSpecLocked(focus.getWindowId());
                if (spec != null && !spec.isNop()) {
                if (spec != null && !spec.isNop()) {
@@ -3697,6 +3690,13 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
                    boundsInScreen.scale(1 / spec.scale);
                    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.
                // Clip to the screen bounds.
                Point screenSize = mTempPoint;
                Point screenSize = mTempPoint;
                mDefaultDisplay.getRealSize(screenSize);
                mDefaultDisplay.getRealSize(screenSize);