From 3bffcb16cb145456918140044a47027f868565f8 Mon Sep 17 00:00:00 2001 From: Phil Weaver Date: Tue, 28 Mar 2017 08:35:38 -0700 Subject: [PATCH] Move displaying mag bounds into surface transation Bug: 30960346 Test: Manually enabled magnification and explored Change-Id: Ida16979ecf0263b1c1288aa92385af29928f2d9e (cherry picked from commit 251db070c5bc6f2859ef05e5456cc9079afc8224) --- .../com/android/server/wm/AccessibilityController.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java index 5abc4e4d2e565..f138add7ba09c 100644 --- a/services/core/java/com/android/server/wm/AccessibilityController.java +++ b/services/core/java/com/android/server/wm/AccessibilityController.java @@ -222,11 +222,10 @@ final class AccessibilityController { || mWindowsForAccessibilityObserver != null); } - /** NOTE: This has to be called within a surface transaction. */ public void setForceShowMagnifiableBoundsLocked(boolean show) { if (mDisplayMagnifier != null) { mDisplayMagnifier.setForceShowMagnifiableBoundsLocked(show); - mDisplayMagnifier.drawMagnifiedRegionBorderIfNeededLocked(); + mDisplayMagnifier.showMagnificationBoundsIfNeeded(); } } @@ -440,6 +439,12 @@ final class AccessibilityController { mMagnifedViewport.destroyWindow(); } + // Can be called outside of a surface transaction + public void showMagnificationBoundsIfNeeded() { + mHandler.obtainMessage(MyHandler.MESSAGE_SHOW_MAGNIFIED_REGION_BOUNDS_IF_NEEDED) + .sendToTarget(); + } + /** NOTE: This has to be called within a surface transaction. */ public void drawMagnifiedRegionBorderIfNeededLocked() { mMagnifedViewport.drawWindowIfNeededLocked();