diff options
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java index 7d82dc17ae72..26b7b684e1d8 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java @@ -799,6 +799,14 @@ public class PipController implements PipTransitionController.PipTransitionCallb } private void onDisplayChangedUncheck(DisplayLayout layout, boolean saveRestoreSnapFraction) { + if (mPipTransitionState.getInSwipePipToHomeTransition()) { + // If orientation is changed when performing swipe-pip animation, DisplayLayout has + // been updated in startSwipePipToHome. So it is unnecessary to update again when + // receiving onDisplayConfigurationChanged. This also avoids TouchHandler.userResizeTo + // update surface position in different orientation by the intermediate state. The + // desired resize will be done by the end of transition. + return; + } Runnable updateDisplayLayout = () -> { final boolean fromRotation = Transitions.ENABLE_SHELL_TRANSITIONS && mPipDisplayLayoutState.getDisplayLayout().rotation() != layout.rotation(); |