From 1f3781ffa024b9195937b5fd68a5244108a76fce Mon Sep 17 00:00:00 2001 From: Tony Huang Date: Wed, 8 Dec 2021 13:55:48 +0800 Subject: [PATCH] Prevent set bounds to child task For child tasks in root task, it usually follow root task bounds so we should prevent setting it while DefaultTransitionHandler handle TRANSIT_CHANGE. Bug: 206872147 Test: manual Test: pass existing tests Change-Id: Iad34886c392e9c568362339395746e9bd4ca501f --- .../wm/shell/transition/DefaultTransitionHandler.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java index a0d9d031b7ed0..e404724156350 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java @@ -346,6 +346,15 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler { } if (change.getMode() == TRANSIT_CHANGE) { + // If task is child task, only set position in parent. + if (isTask && change.getParent() != null + && info.getChange(change.getParent()).getTaskInfo() != null) { + final Point positionInParent = change.getTaskInfo().positionInParent; + startTransaction.setPosition(change.getLeash(), + positionInParent.x, positionInParent.y); + continue; + } + // No default animation for this, so just update bounds/position. startTransaction.setPosition(change.getLeash(), change.getEndAbsBounds().left - change.getEndRelOffset().x,