Use getOutWindowingMode instead of WINDOWING_MODE_UNDEFINED

If the next windowing mode after a window exits PIP is different from
that of the display, it must be set explicitly instead of just being
reset to WINDOWING_MODE_UNDEFINED.

Bug: 238964721
Test: Manually test PIP on YouTube
Change-Id: I8b70d0032c197a3258695c73e3c3c3f7ed5115ea
This commit is contained in:
Kazuki Takise
2022-07-26 15:36:14 +09:00
parent 9ef43b2f6a
commit 5a10672876

View File

@@ -444,7 +444,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
// When exit to fullscreen with Shell transition enabled, we update the Task windowing
// mode directly so that it can also trigger display rotation and visibility update in
// the same transition if there will be any.
wct.setWindowingMode(mToken, WINDOWING_MODE_UNDEFINED);
wct.setWindowingMode(mToken, getOutPipWindowingMode());
// We can inherit the parent bounds as it is going to be fullscreen. The
// destinationBounds calculated above will be incorrect if this is with rotation.
wct.setBounds(mToken, null);
@@ -543,7 +543,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
final WindowContainerTransaction wct = new WindowContainerTransaction();
wct.setBounds(mToken, null);
wct.setWindowingMode(mToken, WINDOWING_MODE_UNDEFINED);
wct.setWindowingMode(mToken, getOutPipWindowingMode());
wct.reorder(mToken, false);
mPipTransitionController.startExitTransition(TRANSIT_REMOVE_PIP, wct,
null /* destinationBounds */);