Avoid entering display freeze mode when using seamless rotation.
am: 73a1fa7f2c
Change-Id: I269f1d0566f82885b43247aa7174db9615e88b7c
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user