summaryrefslogtreecommitdiffstats
path: root/policy
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2012-01-12 14:05:03 -0800
committerDianne Hackborn <hackbod@google.com>2012-01-20 11:01:01 -0800
commitcfbf7dedaddd825b608e87d3dcf46adf80a46976 (patch)
tree75601703069be05b1da575fdb95be34ef2fd8c52 /policy
parent820b45c0a21980a43532b9fb9823f8aa08c64a15 (diff)
downloadframeworks_base-cfbf7dedaddd825b608e87d3dcf46adf80a46976.zip
frameworks_base-cfbf7dedaddd825b608e87d3dcf46adf80a46976.tar.gz
frameworks_base-cfbf7dedaddd825b608e87d3dcf46adf80a46976.tar.bz2
Fix issue #5823276 again: 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. This fix does not include the change to ignore app tokens that are hidden. This causes problems in some dialogs that stay hidden until their app is ready to display, but need to perform a series of relayouts during that time to get to the right size. Dropping this part of the change still (mostly?) seems to allow us to avoid the bad states. Change-Id: Ic052cb1499d3287f47e9ffeac5cd2470ee5a308c
Diffstat (limited to 'policy')
-rwxr-xr-xpolicy/src/com/android/internal/policy/impl/PhoneWindowManager.java6
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 6e16391..7c9f0b5 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;
}
}