diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 1fa0783e0cab8..55bf39472b7bf 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1418,7 +1418,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { */ boolean hasMoved() { return mHasSurface && (mContentChanged || mMovedByResize) - && !mAnimatingExit && mService.okToDisplay() + && !mAnimatingExit && (mFrame.top != mLastFrame.top || mFrame.left != mLastFrame.left) && (mAttachedWindow == null || !mAttachedWindow.hasMoved()); } diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java index 9ee33b47b1687..eba52f9c7b7fd 100644 --- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java +++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java @@ -721,11 +721,13 @@ class WindowSurfacePlacer { final boolean adjustedForMinimizedDockOrIme = task != null && (task.mStack.isAdjustedForMinimizedDockedStack() || task.mStack.isAdjustedForIme()); - if ((w.mAttrs.privateFlags & PRIVATE_FLAG_NO_MOVE_ANIMATION) == 0 - && !w.isDragResizing() && !adjustedForMinimizedDockOrIme - && (task == null || w.getTask().mStack.hasMovementAnimations()) - && !w.mWinAnimator.mLastHidden) { - winAnimator.setMoveAnimation(left, top); + if (mService.okToDisplay()) { + if ((w.mAttrs.privateFlags & PRIVATE_FLAG_NO_MOVE_ANIMATION) == 0 + && !w.isDragResizing() && !adjustedForMinimizedDockOrIme + && (task == null || w.getTask().mStack.hasMovementAnimations()) + && !w.mWinAnimator.mLastHidden) { + winAnimator.setMoveAnimation(left, top); + } } //TODO (multidisplay): Accessibility supported only for the default display.