summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jorim Jaggi <jjaggi@google.com> 2018-08-22 10:34:29 -0700
committer android-build-merger <android-build-merger@google.com> 2018-08-22 10:34:29 -0700
commit619bafd4c254cf714b07a3208b104c70c37dc74b (patch)
treedadf72d62540bcd03f64811fa194eb94d587b712
parent2bbe8e992ac4599bb5ae36f26eac318c592bf871 (diff)
parentab39f605b1d64fad6b6c3ee0ddcb28cb7c77fddf (diff)
Merge "DO NOT MERGE Fix display freezing when screen size mismatches" into pi-dev
am: ab39f605b1 Change-Id: I949542f78ee47a2da613735498c3bf3f7d55e062
-rw-r--r--services/core/java/com/android/server/wm/ScreenRotationAnimation.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
index fa8a5c66aeea..755a571cf5f7 100644
--- a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
+++ b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
@@ -37,6 +37,7 @@ import android.view.DisplayInfo;
import android.view.Surface;
import android.view.Surface.OutOfResourcesException;
import android.view.SurfaceControl;
+import android.view.SurfaceControl.Transaction;
import android.view.SurfaceSession;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
@@ -268,6 +269,12 @@ class ScreenRotationAnimation {
.setSecure(isSecure)
.build();
+ // In case display bounds change, screenshot buffer and surface may mismatch so set a
+ // scaling mode.
+ Transaction t2 = new Transaction();
+ t2.setOverrideScalingMode(mSurfaceControl, Surface.SCALING_MODE_SCALE_TO_WINDOW);
+ t2.apply(true /* sync */);
+
// capture a screenshot into the surface we just created
// TODO(multidisplay): we should use the proper display
final int displayId = SurfaceControl.BUILT_IN_DISPLAY_ID_MAIN;