diff options
| author | 2018-08-22 10:34:29 -0700 | |
|---|---|---|
| committer | 2018-08-22 10:34:29 -0700 | |
| commit | 619bafd4c254cf714b07a3208b104c70c37dc74b (patch) | |
| tree | dadf72d62540bcd03f64811fa194eb94d587b712 | |
| parent | 2bbe8e992ac4599bb5ae36f26eac318c592bf871 (diff) | |
| parent | ab39f605b1d64fad6b6c3ee0ddcb28cb7c77fddf (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.java | 7 |
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; |