diff --git a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java index f3b69e30b40ab..5c9918de5c8e4 100644 --- a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java +++ b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java @@ -380,6 +380,12 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier { } } + if (taskDisplayArea == null && source != null) { + final TaskDisplayArea sourceDisplayArea = source.getDisplayArea(); + if (DEBUG) appendLog("display-area-from-source=" + sourceDisplayArea); + taskDisplayArea = sourceDisplayArea; + } + Task rootTask = (taskDisplayArea == null && task != null) ? task.getRootTask() : null; if (rootTask != null) { @@ -387,12 +393,6 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier { taskDisplayArea = rootTask.getDisplayArea(); } - if (taskDisplayArea == null && source != null) { - final TaskDisplayArea sourceDisplayArea = source.getDisplayArea(); - if (DEBUG) appendLog("display-area-from-source=" + sourceDisplayArea); - taskDisplayArea = sourceDisplayArea; - } - if (taskDisplayArea == null && options != null) { final int callerDisplayId = options.getCallerDisplayId(); final DisplayContent dc = diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java index a1e5afb8b7587..76049a0dd7965 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java @@ -195,7 +195,7 @@ public class TaskLaunchParamsModifierTests extends WindowTestsBase { } @Test - public void testUsesTasksDisplayAreaIdPriorToSourceIfSet() { + public void testUsesSourcesDisplayAreaIdPriorToTaskIfSet() { final TestDisplayContent freeformDisplay = createNewDisplayContent( WINDOWING_MODE_FREEFORM); final TestDisplayContent fullscreenDisplay = createNewDisplayContent( @@ -211,7 +211,7 @@ public class TaskLaunchParamsModifierTests extends WindowTestsBase { .setSource(source) .calculate()); - assertEquals(fullscreenDisplay.getDefaultTaskDisplayArea(), + assertEquals(freeformDisplay.getDefaultTaskDisplayArea(), mResult.mPreferredTaskDisplayArea); }