diff options
author | Dianne Hackborn <hackbod@google.com> | 2012-01-12 14:05:03 -0800 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2012-01-12 14:05:03 -0800 |
commit | 01b02a734d2988c22b00f5df6346ad03d8bf52b6 (patch) | |
tree | 36cc4f3027585963a0db3ad33f907c28182f9fe1 /policy | |
parent | d3be0a76e46584357dbb77fcd200128d0d7dc9a8 (diff) | |
download | frameworks_base-01b02a734d2988c22b00f5df6346ad03d8bf52b6.zip frameworks_base-01b02a734d2988c22b00f5df6346ad03d8bf52b6.tar.gz frameworks_base-01b02a734d2988c22b00f5df6346ad03d8bf52b6.tar.bz2 |
Fix issue #5823276: home repaints after full-screen app is exited
Don't consider a window as a candidate for the top fullscreen window
if it is not going to be a candiate for layout.
Also don't consider windows a candidate for layout if their app token
is hidden. This fixes a transient state where we are preparing to
unhide the window but have not done so yet.
Change-Id: Ife5299ffa003c1df1a4f787b7a2809cbf614ec16
Diffstat (limited to 'policy')
-rwxr-xr-x | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 0b223c1..eeade05 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -2336,7 +2336,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (DEBUG_LAYOUT) Slog.i(TAG, "Win " + win + ": isVisibleOrBehindKeyguardLw=" + win.isVisibleOrBehindKeyguardLw()); if (mTopFullscreenOpaqueWindowState == null && - win.isVisibleOrBehindKeyguardLw()) { + win.isVisibleOrBehindKeyguardLw() && !win.isGoneForLayoutLw()) { if ((attrs.flags & FLAG_FORCE_NOT_FULLSCREEN) != 0) { mForceStatusBar = true; } @@ -2391,7 +2391,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { // case though. if (topIsFullscreen) { if (mStatusBarCanHide) { - if (DEBUG_LAYOUT) Log.v(TAG, "Hiding status bar"); + if (DEBUG_LAYOUT) Log.v(TAG, "** HIDING status bar"); if (mStatusBar.hideLw(true)) { changes |= FINISH_LAYOUT_REDO_LAYOUT; @@ -2407,7 +2407,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { Log.v(TAG, "Preventing status bar from hiding by policy"); } } else { - if (DEBUG_LAYOUT) Log.v(TAG, "Showing status bar: top is not fullscreen"); + if (DEBUG_LAYOUT) Log.v(TAG, "** SHOWING status bar: top is not fullscreen"); if (mStatusBar.showLw(true)) changes |= FINISH_LAYOUT_REDO_LAYOUT; } } |