diff options
author | Craig Mautner <cmautner@google.com> | 2013-10-29 11:10:42 -0700 |
---|---|---|
committer | Craig Mautner <cmautner@google.com> | 2013-10-29 11:32:30 -0700 |
commit | 81defc794b0079c7f557b5d7c3924039ac0e9156 (patch) | |
tree | 35acf0b10b66e55f435374b2c0565807cf45317f /policy/src | |
parent | 66b753b06bb265d3f5b25244856f8d827a9dc5af (diff) | |
download | frameworks_base-81defc794b0079c7f557b5d7c3924039ac0e9156.zip frameworks_base-81defc794b0079c7f557b5d7c3924039ac0e9156.tar.gz frameworks_base-81defc794b0079c7f557b5d7c3924039ac0e9156.tar.bz2 |
Force relayout at completion of status bar animation
A final layout pass should be done whenever the status bar has
completed its incoming animation.
Fixes bug 10387660.
Change-Id: I48c19015c53116b58cf73e20be32d1f64dd682ca
Diffstat (limited to 'policy/src')
-rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index dcaf3d6..faca949 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -3466,6 +3466,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (mStatusBarController.setBarShowingLw(true)) { changes |= FINISH_LAYOUT_REDO_LAYOUT; } + // Maintain fullscreen layout until incoming animation is complete. + topIsFullscreen = mTopIsFullscreen && mStatusBar.isAnimatingLw(); } else if (mTopFullscreenOpaqueWindowState != null) { if (localLOGV) { Slog.d(TAG, "frame: " + mTopFullscreenOpaqueWindowState.getFrameLw() @@ -3499,7 +3501,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } - mTopIsFullscreen = topIsFullscreen; + if (mTopIsFullscreen != topIsFullscreen) { + if (!topIsFullscreen) { + // Force another layout when status bar becomes fully shown. + changes |= FINISH_LAYOUT_REDO_LAYOUT; + } + mTopIsFullscreen = topIsFullscreen; + } // Hide the key guard if a visible window explicitly specifies that it wants to be // displayed when the screen is locked. |