diff options
| author | 2025-01-14 11:18:10 -0800 | |
|---|---|---|
| committer | 2025-01-14 11:18:10 -0800 | |
| commit | de2fcaf209b7c4f5367744a60cac4fd9bfecaf16 (patch) | |
| tree | dae68d3dc7d908a44c022ecb43f64f4114dfc77f | |
| parent | e010704324cafde2ca92417f4f951fb502b2ccba (diff) | |
| parent | 4d5fa9fd2aa61d8e8f1b444e77c1fb3edcbca84f (diff) | |
Merge "Use correct root leash if PiP is the only target" into main
| -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(); |