summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/Transition.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index f4a455a9c2dd..75cefdff2b0b 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -2890,6 +2890,13 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
leashReference = leashReference.getParent();
}
}
+ if (wc == leashReference
+ && sortedTargets.get(i).mWindowingMode == WINDOWING_MODE_PINNED) {
+ // If a PiP task is the only target, we wanna make sure the transition root leash
+ // is at the top in case PiP is sent to back. This is done because a pinned task is
+ // meant to be always-on-top throughout a transition.
+ leashReference = ancestor.getTopChild();
+ }
final SurfaceControl rootLeash = leashReference.makeAnimationLeash().setName(
"Transition Root: " + leashReference.getName())
.setCallsite("Transition.calculateTransitionRoots").build();