diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 14 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 38fb30e855e3..9621eddc348a 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -393,6 +393,8 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo /** Temporary float array to retrieve 3x3 matrix values. */ private final float[] mTmpFloats = new float[9]; + private MagnificationSpec mMagnificationSpec; + private final Consumer<WindowState> mUpdateWindowsForAnimator = w -> { WindowStateAnimator winAnimator = w.mWinAnimator; final AppWindowToken atoken = w.mAppToken; @@ -3837,10 +3839,22 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo } void applyMagnificationSpec(MagnificationSpec spec) { + if (spec.scale != 1.0) { + mMagnificationSpec = spec; + } else { + mMagnificationSpec = null; + } + applyMagnificationSpec(getPendingTransaction(), spec); getPendingTransaction().apply(); } + void reapplyMagnificationSpec() { + if (mMagnificationSpec != null) { + applyMagnificationSpec(getPendingTransaction(), mMagnificationSpec); + } + } + @Override void onParentSet() { // Since we are the top of the SurfaceControl hierarchy here diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 86aed47a3482..0de3c921735e 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -808,6 +808,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP void onParentSet() { super.onParentSet(); setDrawnStateEvaluated(false /*evaluated*/); + + getDisplayContent().reapplyMagnificationSpec(); } @Override |