diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index c44f08cbd1ebe..f6f9020555d85 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -426,6 +426,21 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe t.setLayer(targetLeash, target.getLastLayer()); target.getRelativePosition(tmpPos); t.setPosition(targetLeash, tmpPos.x, tmpPos.y); + final Rect clipRect; + // No need to clip the display in case seeing the clipped content when during the + // display rotation. + if (target.asDisplayContent() != null) { + clipRect = null; + } else if (target.asActivityRecord() != null) { + // Always use parent bounds of activity because letterbox area (e.g. fixed + // aspect ratio or size compat mode) should be included. + clipRect = target.getParent().getRequestedOverrideBounds(); + clipRect.offset(-tmpPos.x, -tmpPos.y); + } else { + clipRect = target.getRequestedOverrideBounds(); + clipRect.offset(-tmpPos.x, -tmpPos.y); + } + t.setCrop(targetLeash, clipRect); t.setCornerRadius(targetLeash, 0); t.setShadowRadius(targetLeash, 0); t.setMatrix(targetLeash, 1, 0, 0, 1);