diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-04-13 18:02:11 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-04-13 18:02:11 -0700 |
commit | b7d9e8e17baad481ec834bc545e980ba21d7f67b (patch) | |
tree | 160a240b13f9e1ec338ebd9169d30ceddcd04327 /services | |
parent | b5c9873e7cbf8fc6f28025333821de5554a76850 (diff) | |
parent | fbd22f072b48be4b465085fb5354890e2f10fd32 (diff) | |
download | frameworks_base-b7d9e8e17baad481ec834bc545e980ba21d7f67b.zip frameworks_base-b7d9e8e17baad481ec834bc545e980ba21d7f67b.tar.gz frameworks_base-b7d9e8e17baad481ec834bc545e980ba21d7f67b.tar.bz2 |
am fbd22f07: am ae8c2c71: Merge "Fix issue #2420340: if FLAG_SHOW_WHEN_LOCKED, do not show keyguard..." into froyo
Merge commit 'fbd22f072b48be4b465085fb5354890e2f10fd32' into kraken
* commit 'fbd22f072b48be4b465085fb5354890e2f10fd32':
Fix issue #2420340: if FLAG_SHOW_WHEN_LOCKED, do not show keyguard...
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java index 6e80ece..972935e 100644 --- a/services/java/com/android/server/WindowManagerService.java +++ b/services/java/com/android/server/WindowManagerService.java @@ -4418,7 +4418,8 @@ public class WindowManagerService extends IWindowManager.Stub final int N = mWindows.size(); for (int i=0; i<N; i++) { WindowState w = (WindowState)mWindows.get(i); - if (w.isVisibleLw() && !w.mObscured && !w.isDrawnLw()) { + if (w.isVisibleLw() && !w.mObscured + && (w.mOrientationChanging || !w.isDrawnLw())) { return; } } @@ -7925,7 +7926,7 @@ public class WindowManagerService extends IWindowManager.Stub final AppWindowToken atoken = mAppToken; return mSurface != null && !mAttachedHidden && (atoken == null ? mPolicyVisibility : !atoken.hiddenRequested) - && !mDrawPending && !mCommitDrawPending + && (mOrientationChanging || (!mDrawPending && !mCommitDrawPending)) && !mExiting && !mDestroying; } @@ -8029,12 +8030,14 @@ public class WindowManagerService extends IWindowManager.Stub /** * Returns true if the window has a surface that it has drawn a - * complete UI in to. + * complete UI in to. Note that this returns true if the orientation + * is changing even if the window hasn't redrawn because we don't want + * to stop things from executing during that time. */ public boolean isDrawnLw() { final AppWindowToken atoken = mAppToken; return mSurface != null && !mDestroying - && !mDrawPending && !mCommitDrawPending; + && (mOrientationChanging || (!mDrawPending && !mCommitDrawPending)); } public boolean fillsScreenLw(int screenWidth, int screenHeight, @@ -10292,6 +10295,12 @@ public class WindowManagerService extends IWindowManager.Stub if (w.mAttachedHidden || !w.isReadyForDisplay()) { if (!w.mLastHidden) { //dump(); + if (DEBUG_CONFIGURATION) Slog.v(TAG, "Window hiding: waitingToShow=" + + w.mRootToken.waitingToShow + " polvis=" + + w.mPolicyVisibility + " atthid=" + + w.mAttachedHidden + " tokhid=" + + w.mRootToken.hidden + " vis=" + + w.mViewVisibility); w.mLastHidden = true; if (SHOW_TRANSACTIONS) logSurface(w, "HIDE (performLayout)", null); |