summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Eugene Susla <eugenesusla@google.com> 2018-02-12 13:03:30 -0800
committer Eugene Susla <eugenesusla@google.com> 2018-02-13 15:11:45 -0800
commit10280a87df9e06bbd3e0ce7e9a74e7c4016d5341 (patch)
tree31f54c5cd97ae6605df85b1bdff4cd585d67ccba
parentaa2c46cc81b87f443e800617097ad60212fbdaf4 (diff)
Fix magnification viewport drifting when scaling
Fixes: 32255388 Test: Ensure viewport no longer drifts when scaling Change-Id: I1b12aeaa8e1d0282d6c35a27ee061f6cd7b0a667
-rw-r--r--services/accessibility/java/com/android/server/accessibility/MagnificationController.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/MagnificationController.java b/services/accessibility/java/com/android/server/accessibility/MagnificationController.java
index a70b88e87ae4..7250a445487d 100644
--- a/services/accessibility/java/com/android/server/accessibility/MagnificationController.java
+++ b/services/accessibility/java/com/android/server/accessibility/MagnificationController.java
@@ -446,8 +446,10 @@ class MagnificationController implements Handler.Callback {
mMagnificationRegion.getBounds(viewport);
final MagnificationSpec spec = mCurrentMagnificationSpec;
final float oldScale = spec.scale;
- final float oldCenterX = (viewport.width() / 2.0f - spec.offsetX) / oldScale;
- final float oldCenterY = (viewport.height() / 2.0f - spec.offsetY) / oldScale;
+ final float oldCenterX
+ = (viewport.width() / 2.0f - spec.offsetX + viewport.left) / oldScale;
+ final float oldCenterY
+ = (viewport.height() / 2.0f - spec.offsetY + viewport.top) / oldScale;
final float normPivotX = (pivotX - spec.offsetX) / oldScale;
final float normPivotY = (pivotY - spec.offsetY) / oldScale;
final float offsetX = (oldCenterX - normPivotX) * (oldScale / scale);