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();