diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/RootWindowContainer.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index bc7fa31125f9..6bab371ba4db 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -3310,9 +3310,14 @@ class RootWindowContainer extends WindowContainer<DisplayContent> if (aOptions != null) { // Resolve the root task the task should be placed in now based on options // and reparent if needed. + // TODO(b/229927851) For split-screen, setLaunchRootTask is no longer the "root" + // task, consider to rename methods like "parentTask" instead of "rootTask". final Task targetRootTask = getOrCreateRootTask(null, aOptions, task, onTop); - if (targetRootTask != null && task.getRootTask() != targetRootTask) { + // When launch with ActivityOptions#getLaunchRootTask, the "root task" just mean the + // parent of current launch, not the "root task" in hierarchy. + if (targetRootTask != null && task.getRootTask() != targetRootTask + && task.getParent() != targetRootTask) { final int reparentMode = onTop ? REPARENT_MOVE_ROOT_TASK_TO_FRONT : REPARENT_LEAVE_ROOT_TASK_IN_PLACE; task.reparent(targetRootTask, onTop, reparentMode, ANIMATE, DEFER_RESUME, |