diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index 156fb983e7b92..c1821203032ac 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -1302,6 +1302,11 @@ class ActivityStack extends ConfigurationContainer { return; } + getDisplay().positionChildAtBottom(this, reason); + if (task != null) { + insertTaskAtBottom(task); + } + /** * The intent behind moving a primary split screen stack to the back is usually to hide * behind the home stack. Exit split screen in this case. @@ -1309,11 +1314,6 @@ class ActivityStack extends ConfigurationContainer { if (getWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) { setWindowingMode(WINDOWING_MODE_UNDEFINED); } - - getDisplay().positionChildAtBottom(this, reason); - if (task != null) { - insertTaskAtBottom(task); - } } boolean isFocusable() { diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 16dd5552d693a..6e3f03d34cab8 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -3918,10 +3918,10 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { // Caller wants the current split-screen primary stack to be the top stack after // it goes fullscreen, so move it to the front. stack.moveToFront("dismissSplitScreenMode"); - } else if (mRootActivityContainer.isTopDisplayFocusedStack(stack)) { + } else { // In this case the current split-screen primary stack shouldn't be the top - // stack after it goes fullscreen, but it current has focus, so we move the - // focus to the top-most split-screen secondary stack next to it. + // stack after it goes fullscreen, so we move the focus to the top-most + // split-screen secondary stack next to it. final ActivityStack otherStack = stack.getDisplay().getTopStackInWindowingMode( WINDOWING_MODE_SPLIT_SCREEN_SECONDARY); if (otherStack != null) {