From ed98ad97972657fcfcca33e78a9ce015e6f498e6 Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Thu, 16 Apr 2020 14:10:08 -0700 Subject: [PATCH] Fix PiP window on rotation Per suggestion, check WindowState.mInRelayout instead of mSurfaceResized when trying to apply the companion SurfaceControl.Transaction of WindowContainerTransaction. mSurfaceResized is false when the client calls to relayout and client renderer is paused, which can be triggered from home screen rotation for PiP window. Bug: 154236022 Test: manually rotate with PiP on screen Change-Id: Ibbe1632de054a8f99c006050701d3472ddc3bbd9 --- .../core/java/com/android/server/wm/WindowStateAnimator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 99577077d65d4..68a63f9bd9536 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -884,8 +884,8 @@ class WindowStateAnimator { clipRect = mTmpClipRect; } - if (mSurfaceResized && (mAttrType == TYPE_BASE_APPLICATION) && - (task != null) && (task.getMainWindowSizeChangeTransaction() != null)) { + if (w.mInRelayout && (mAttrType == TYPE_BASE_APPLICATION) && (task != null) + && (task.getMainWindowSizeChangeTransaction() != null)) { mSurfaceController.deferTransactionUntil(mWin.getClientViewRootSurface(), mWin.getFrameNumber()); SurfaceControl.mergeToGlobalTransaction(task.getMainWindowSizeChangeTransaction());