Avoid entering display freeze mode when using seamless rotation.

am: 73a1fa7f2c

Change-Id: I269f1d0566f82885b43247aa7174db9615e88b7c
This commit is contained in:
Robert Carr
2016-09-22 22:52:09 +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;