summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2012-10-11 14:07:58 -0700
committerCraig Mautner <cmautner@google.com>2012-10-11 14:13:31 -0700
commita987d43bc916b6446fe41037d9fcf07e778b3452 (patch)
treeb6b73ddaa09b417f56ba6ead1a655452b16757ed
parent0a75ed0805dd7f97ff058623eb8e4f4b258c44ab (diff)
downloadframeworks_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-xservices/java/com/android/server/wm/WindowManagerService.java1
-rw-r--r--services/java/com/android/server/wm/WindowState.java6
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;
}