Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +15 −10 Original line number Diff line number Diff line Loading @@ -3576,31 +3576,36 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } synchronized (mLock) { Rect boundsInScreen = mTempRect; focus.getBoundsInScreen(boundsInScreen); Rect boundsInScreenBeforeMagnification = mTempRect; // Apply magnification if needed. focus.getBoundsInScreen(boundsInScreenBeforeMagnification); final Point nodeCenter = new Point(boundsInScreenBeforeMagnification.centerX(), boundsInScreenBeforeMagnification.centerY()); // Invert magnification if needed. MagnificationSpec spec = getCompatibleMagnificationSpecLocked(focus.getWindowId()); if (spec != null && !spec.isNop()) { boundsInScreen.offset((int) -spec.offsetX, (int) -spec.offsetY); boundsInScreen.scale(1 / spec.scale); boundsInScreenBeforeMagnification.offset((int) -spec.offsetX, (int) -spec.offsetY); boundsInScreenBeforeMagnification.scale(1 / spec.scale); } //Clip to the window bounds. Rect windowBounds = mTempRect1; getWindowBounds(focus.getWindowId(), windowBounds); if (!boundsInScreen.intersect(windowBounds)) { if (!boundsInScreenBeforeMagnification.intersect(windowBounds)) { return false; } //Clip to the screen bounds. Point screenSize = mTempPoint; mDefaultDisplay.getRealSize(screenSize); if (!boundsInScreen.intersect(0, 0, screenSize.x, screenSize.y)) { if (!boundsInScreenBeforeMagnification.intersect(0, 0, screenSize.x, screenSize.y)) { return false; } outPoint.set(boundsInScreen.centerX(), boundsInScreen.centerY()); outPoint.set(nodeCenter.x, nodeCenter.y); } return true; Loading Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +15 −10 Original line number Diff line number Diff line Loading @@ -3576,31 +3576,36 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } synchronized (mLock) { Rect boundsInScreen = mTempRect; focus.getBoundsInScreen(boundsInScreen); Rect boundsInScreenBeforeMagnification = mTempRect; // Apply magnification if needed. focus.getBoundsInScreen(boundsInScreenBeforeMagnification); final Point nodeCenter = new Point(boundsInScreenBeforeMagnification.centerX(), boundsInScreenBeforeMagnification.centerY()); // Invert magnification if needed. MagnificationSpec spec = getCompatibleMagnificationSpecLocked(focus.getWindowId()); if (spec != null && !spec.isNop()) { boundsInScreen.offset((int) -spec.offsetX, (int) -spec.offsetY); boundsInScreen.scale(1 / spec.scale); boundsInScreenBeforeMagnification.offset((int) -spec.offsetX, (int) -spec.offsetY); boundsInScreenBeforeMagnification.scale(1 / spec.scale); } //Clip to the window bounds. Rect windowBounds = mTempRect1; getWindowBounds(focus.getWindowId(), windowBounds); if (!boundsInScreen.intersect(windowBounds)) { if (!boundsInScreenBeforeMagnification.intersect(windowBounds)) { return false; } //Clip to the screen bounds. Point screenSize = mTempPoint; mDefaultDisplay.getRealSize(screenSize); if (!boundsInScreen.intersect(0, 0, screenSize.x, screenSize.y)) { if (!boundsInScreenBeforeMagnification.intersect(0, 0, screenSize.x, screenSize.y)) { return false; } outPoint.set(boundsInScreen.centerX(), boundsInScreen.centerY()); outPoint.set(nodeCenter.x, nodeCenter.y); } return true; Loading