summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java14
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java2
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