Dejank: also animate window moves due to requested size changes.
This performance an animation when, for example, a dialog window is
moved because the size of its content has changed.
Change-Id: I2d79a1a57f94e0f2f8ef706a473fca6c9cc637cf
diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java
index 167746f..e11c87a 100644
--- a/services/java/com/android/server/wm/WindowState.java
+++ b/services/java/com/android/server/wm/WindowState.java
@@ -100,6 +100,8 @@
*/
int mRequestedWidth;
int mRequestedHeight;
+ int mLastRequestedWidth;
+ int mLastRequestedHeight;
int mLayer;
int mAnimLayer;
@@ -391,6 +393,8 @@
mSurface = null;
mRequestedWidth = 0;
mRequestedHeight = 0;
+ mLastRequestedWidth = 0;
+ mLastRequestedHeight = 0;
mXOffset = 0;
mYOffset = 0;
mLayer = 0;
@@ -458,6 +462,11 @@
mParentFrame.set(pf);
mContentChanged = true;
}
+ if (mRequestedWidth != mLastRequestedWidth || mRequestedHeight != mLastRequestedHeight) {
+ mLastRequestedWidth = mRequestedWidth;
+ mLastRequestedHeight = mRequestedHeight;
+ mContentChanged = true;
+ }
final Rect content = mContentFrame;
content.set(cf);
@@ -1701,6 +1710,10 @@
pw.print(prefix); pw.print("Requested w="); pw.print(mRequestedWidth);
pw.print(" h="); pw.print(mRequestedHeight);
pw.print(" mLayoutSeq="); pw.println(mLayoutSeq);
+ if (mRequestedWidth != mLastRequestedWidth || mRequestedHeight != mLastRequestedHeight) {
+ pw.print(prefix); pw.print("LastRequested w="); pw.print(mLastRequestedWidth);
+ pw.print(" h="); pw.println(mLastRequestedHeight);
+ }
if (mAttachedWindow != null || mLayoutAttached) {
pw.print(prefix); pw.print("mAttachedWindow="); pw.print(mAttachedWindow);
pw.print(" mLayoutAttached="); pw.println(mLayoutAttached);