From dbf61b64b15e2533cadf7d721731c4be2db4e426 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Thu, 4 Aug 2016 13:16:55 -0700 Subject: [PATCH] WindowManager: Restore update behavior of mLastFrame. We need to always update mLastFrame like we used to. Moving the update inside the conditional caused it to not update on position changes. Bug: 30665565 Bug: 30641229 Change-Id: Ic71e8a8f91765870ebe2c0559f61aa83540c3a0d --- .../java/com/android/server/wm/WindowManagerService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 6451c7492fa82..0b63421e79570 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -9454,10 +9454,17 @@ public class WindowManagerService extends IWindowManager.Stub } final boolean dragResizingChanged = w.isDragResizeChanged() && !w.isDragResizingChangeReported(); + if (localLOGV) Slog.v(TAG_WM, "Resizing " + w + ": configChanged=" + configChanged + " dragResizingChanged=" + dragResizingChanged + " last=" + w.mLastFrame + " frame=" + w.mFrame); + + // We update mLastFrame always rather than in the conditional with the + // last inset variables, because mFrameSizeChanged only tracks the + // width and height changing. + w.mLastFrame.set(w.mFrame); + if (w.mContentInsetsChanged || w.mVisibleInsetsChanged || winAnimator.mSurfaceResized @@ -9495,7 +9502,6 @@ public class WindowManagerService extends IWindowManager.Stub w.mLastVisibleInsets.set(w.mVisibleInsets); w.mLastStableInsets.set(w.mStableInsets); w.mLastOutsets.set(w.mOutsets); - w.mLastFrame.set(w.mFrame); makeWindowFreezingScreenIfNeededLocked(w); // If the orientation is changing, or we're starting or ending // a drag resizing action, then we need to hold off on unfreezing