Avoid entering display freeze mode when using seamless rotation. am: 73a1fa7f2c

am: 95e413c781

Change-Id: I23312039e0e4df9ee1787ab7f5808e84070a2adf
This commit is contained in:
Robert Carr
2016-09-22 23:49:29 +00:00
committed by android-build-merger
2 changed files with 9 additions and 1 deletions

View File

@@ -3790,7 +3790,11 @@ public class WindowManagerService extends IWindowManager.Stub
Configuration config = null;
if (updateOrientationFromAppTokensLocked(false)) {
if (freezeThisOneIfNeeded != null) {
// If we changed the orientation but mOrientationChangeComplete is
// already true, we used seamless rotation, and we don't need
// to freeze the screen.
if (freezeThisOneIfNeeded != null &&
!mWindowPlacerLocked.mOrientationChangeComplete) {
AppWindowToken atoken = findAppWindowToken(freezeThisOneIfNeeded);
if (atoken != null) {
startAppFreezingScreenLocked(atoken);

View File

@@ -101,6 +101,10 @@ class WindowSurfacePlacer {
static final int SET_WALLPAPER_ACTION_PENDING = 1 << 5;
boolean mWallpaperMayChange = false;
// During an orientation change, we track whether all windows have rendered
// at the new orientation, and this will be false from changing orientation until that occurs.
// For seamless rotation cases this always stays true, as the windows complete their orientation
// changes 1 by 1 without disturbing global state.
boolean mOrientationChangeComplete = true;
boolean mWallpaperActionPending = false;