diff --git a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java index 36311302bf..1062652ed4 100644 --- a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java +++ b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java @@ -121,6 +121,15 @@ public class SwipePipToHomeAnimator extends ValueAnimator { mDestinationBoundsAnimation.set(mDestinationBounds); mSurfaceTransactionHelper = new PipSurfaceTransactionHelper(cornerRadius); + if (sourceRectHint != null && (sourceRectHint.width() < destinationBounds.width() + || sourceRectHint.height() < destinationBounds.height())) { + // This is a situation in which the source hint rect on at least one axis is smaller + // than the destination bounds, which presents a problem because we would have to scale + // up that axis to fit the bounds. So instead, just fallback to the non-source hint + // animation in this case. + sourceRectHint = null; + } + if (sourceRectHint == null) { mSourceHintRectInsets = null;