diff options
author | Craig Mautner <cmautner@google.com> | 2012-10-11 14:07:58 -0700 |
---|---|---|
committer | Craig Mautner <cmautner@google.com> | 2012-10-11 14:13:31 -0700 |
commit | a987d43bc916b6446fe41037d9fcf07e778b3452 (patch) | |
tree | b6b73ddaa09b417f56ba6ead1a655452b16757ed | |
parent | 0a75ed0805dd7f97ff058623eb8e4f4b258c44ab (diff) | |
download | frameworks_base-a987d43bc916b6446fe41037d9fcf07e778b3452.zip frameworks_base-a987d43bc916b6446fe41037d9fcf07e778b3452.tar.gz frameworks_base-a987d43bc916b6446fe41037d9fcf07e778b3452.tar.bz2 |
Check for apps closing and restore mExiting test.
Removal of the mExiting test in a previous CL was a mistake leading
to z-order errors. In particular the auto complete dialog was on top
of the IME and was being dismissed due to touches on the IME.
Restoring mExiting alone missed cases where apps were exiting which
don't set mExiting. Adding a test for membership in mClosingApps
fixes that.
Bug: 7327220 fixed.
Change-Id: I3965b8a07080d1347bdada51ffeafe6ef2e32c8e
-rwxr-xr-x | services/java/com/android/server/wm/WindowManagerService.java | 1 | ||||
-rw-r--r-- | services/java/com/android/server/wm/WindowState.java | 6 |
2 files changed, 6 insertions, 1 deletions
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 54f6deb..77d815b 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -1213,6 +1213,7 @@ public class WindowManagerService extends IWindowManager.Stub final WindowState curTarget = mInputMethodTarget; if (curTarget != null && w != null && curTarget.isDisplayedLw() + && curTarget.isClosing() && (curTarget.mWinAnimator.mAnimLayer > w.mWinAnimator.mAnimLayer)) { if (DEBUG_INPUT_METHOD) Slog.v(TAG, "Current target higher, not changing"); return windows.indexOf(curTarget) + 1; diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java index 23892f6..feb29b1 100644 --- a/services/java/com/android/server/wm/WindowState.java +++ b/services/java/com/android/server/wm/WindowState.java @@ -1024,6 +1024,10 @@ final class WindowState implements WindowManagerPolicy.WindowState { return mClient.asBinder().isBinderAlive(); } + boolean isClosing() { + return mExiting || (mService.mClosingApps.contains(mAppToken)); + } + @Override public boolean isDefaultDisplay() { return mDisplayContent.isDefaultDisplay; @@ -1234,7 +1238,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { mWasPaused = mToken.paused; mStringNameCache = "Window{" + Integer.toHexString(System.identityHashCode(this)) + " u" + UserHandle.getUserId(mSession.mUid) - + " " + mLastTitle + (mWasPaused ? " PAUSED}" : "}"); + + " " + mLastTitle + (mExiting ? " EXITING}" : "}"); } return mStringNameCache; } |