Merge "Fix black screen while pip to split screen" into sc-dev

This commit is contained in:
Tony Huang
2021-04-01 06:35:50 +00:00
committed by Android (Google) Code Review
2 changed files with 7 additions and 7 deletions

View File

@@ -540,9 +540,10 @@ public class PipAnimationController {
// WindowContainerTransaction in task organizer
final Rect destBounds = getDestinationBounds();
getSurfaceTransactionHelper().resetScale(tx, leash, destBounds);
if (transitionDirection == TRANSITION_DIRECTION_LEAVE_PIP) {
// Leaving to fullscreen, reset crop to null.
tx.setPosition(leash, destBounds.left, destBounds.top);
if (isOutPipDirection(transitionDirection)) {
// Exit pip, clear scale, position and crop.
tx.setMatrix(leash, 1, 0, 0, 1);
tx.setPosition(leash, 0, 0);
tx.setWindowCrop(leash, 0, 0);
} else {
getSurfaceTransactionHelper().crop(tx, leash, destBounds);

View File

@@ -1016,10 +1016,9 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
wct.setActivityWindowingMode(mToken, WINDOWING_MODE_UNDEFINED);
wct.scheduleFinishEnterPip(mToken, destinationBounds);
} else if (isOutPipDirection(direction)) {
// If we are animating to fullscreen, then we need to reset the override bounds
// on the task to ensure that the task "matches" the parent's bounds.
taskBounds = (direction == TRANSITION_DIRECTION_LEAVE_PIP)
? null : destinationBounds;
// If we are animating to fullscreen or split screen, then we need to reset the
// override bounds on the task to ensure that the task "matches" the parent's bounds.
taskBounds = null;
applyWindowingModeChangeOnExit(wct, direction);
} else {
// Just a resize in PIP