@@ -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