diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 4df1d71fbaee0..0db9f197506c2 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -1210,12 +1210,9 @@ public class WindowManagerService extends IWindowManager.Stub final WindowState curTarget = mInputMethodTarget; if (curTarget != null && w != null && curTarget.isDisplayedLw() - && curTarget.mExiting) { - if (curTarget.mWinAnimator.mAnimLayer > w.mWinAnimator.mAnimLayer) { - w = curTarget; - i = windows.indexOf(w); - if (DEBUG_INPUT_METHOD) Slog.v(TAG, "Current target higher, switching to: " + w); - } + && (curTarget.mWinAnimator.mAnimLayer > w.mWinAnimator.mAnimLayer)) { + if (DEBUG_INPUT_METHOD) Slog.v(TAG, "Current target higher, not changing"); + return windows.indexOf(curTarget) + 1; } if (DEBUG_INPUT_METHOD) Slog.v(TAG, "Desired input method target=" @@ -4184,6 +4181,7 @@ public class WindowManagerService extends IWindowManager.Stub } } + @Override public void setAppStartingWindow(IBinder token, String pkg, int theme, CompatibilityInfo compatInfo, CharSequence nonLocalizedLabel, int labelRes, int icon, diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java index dee66a65cdb71..23892f6782f2e 100644 --- a/services/java/com/android/server/wm/WindowState.java +++ b/services/java/com/android/server/wm/WindowState.java @@ -788,18 +788,21 @@ final class WindowState implements WindowManagerPolicy.WindowState { * Like isOnScreen, but returns false if the surface hasn't yet * been drawn. */ + @Override public boolean isDisplayedLw() { final AppWindowToken atoken = mAppToken; return isDrawnLw() && mPolicyVisibility && ((!mAttachedHidden && (atoken == null || !atoken.hiddenRequested)) - || mWinAnimator.mAnimating); + || mWinAnimator.mAnimating + || (atoken != null && atoken.mAppAnimator.animation != null)); } /** * Return true if this window (or a window it is attached to, but not * considering its app token) is currently animating. */ + @Override public boolean isAnimatingLw() { return mWinAnimator.mAnimation != null; }