Skip to content

Commit 42c4585

Browse files
author
Dianne Hackborn
committed
Fix so that windows again animate when moving.
Change-Id: I2441d0c892687b8cda239815caf77837cd21093e
1 parent 9828830 commit 42c4585

File tree

1 file changed

+21
-20
lines changed

1 file changed

+21
-20
lines changed

services/java/com/android/server/wm/WindowManagerService.java

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8400,8 +8400,6 @@ private final void performLayoutAndPlaceSurfacesLockedInner(
84008400
final int N = mWindows.size();
84018401
for (i=N-1; i>=0; i--) {
84028402
WindowState w = mWindows.get(i);
8403-
//Slog.i(TAG, "Window " + this + " clearing mContentChanged - done placing");
8404-
w.mContentChanged = false;
84058403

84068404
if (someoneLosingFocus && w == mCurrentFocus && w.isDisplayedLw()) {
84078405
focusDisplayed = true;
@@ -8503,6 +8501,27 @@ private final void performLayoutAndPlaceSurfacesLockedInner(
85038501
for (i=N-1; i>=0; i--) {
85048502
final WindowState w = mWindows.get(i);
85058503
final WindowStateAnimator winAnimator = w.mWinAnimator;
8504+
8505+
// If the window has moved due to its containing
8506+
// content frame changing, then we'd like to animate
8507+
// it.
8508+
if (w.mHasSurface && w.shouldAnimateMove()) {
8509+
// Frame has moved, containing content frame
8510+
// has also moved, and we're not currently animating...
8511+
// let's do something.
8512+
Animation a = AnimationUtils.loadAnimation(mContext,
8513+
com.android.internal.R.anim.window_move_from_decor);
8514+
winAnimator.setAnimation(a);
8515+
winAnimator.mAnimDw = w.mLastFrame.left - w.mFrame.left;
8516+
winAnimator.mAnimDh = w.mLastFrame.top - w.mFrame.top;
8517+
} else {
8518+
winAnimator.mAnimDw = innerDw;
8519+
winAnimator.mAnimDh = innerDh;
8520+
}
8521+
8522+
//Slog.i(TAG, "Window " + this + " clearing mContentChanged - done placing");
8523+
w.mContentChanged = false;
8524+
85068525
// TODO(cmautner): Can this move up to the loop at the end of try/catch above?
85078526
updateResizingWindows(w);
85088527

@@ -8522,24 +8541,6 @@ private final void performLayoutAndPlaceSurfacesLockedInner(
85228541
}
85238542
}
85248543
}
8525-
8526-
// If the window has moved due to its containing
8527-
// content frame changing, then we'd like to animate
8528-
// it. The checks here are ordered by what is least
8529-
// likely to be true first.
8530-
if (w.shouldAnimateMove()) {
8531-
// Frame has moved, containing content frame
8532-
// has also moved, and we're not currently animating...
8533-
// let's do something.
8534-
Animation a = AnimationUtils.loadAnimation(mContext,
8535-
com.android.internal.R.anim.window_move_from_decor);
8536-
winAnimator.setAnimation(a);
8537-
winAnimator.mAnimDw = w.mLastFrame.left - w.mFrame.left;
8538-
winAnimator.mAnimDh = w.mLastFrame.top - w.mFrame.top;
8539-
} else {
8540-
winAnimator.mAnimDw = innerDw;
8541-
winAnimator.mAnimDh = innerDh;
8542-
}
85438544
}
85448545
}
85458546

0 commit comments

Comments
 (0)