diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/Transition.java | 7 |
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(); |