summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Shuming Hao <shuminghao@google.com> 2025-02-03 17:44:17 -0800
committer Shuming Hao <shuminghao@google.com> 2025-02-04 14:19:59 -0800
commit57c8f9d47f43c367065e9971cf453e4baa50afc2 (patch)
tree743651c74f07e784019c3189a6f095c5797fec62
parentc1965ff49a88195cd9cbe155db74ac2250a21bd3 (diff)
Reparent split root task to default display
This CL reparents split screen root task to default display after the split pair is dismissed. Test: manual Flag: com.android.window.flags.enable_non_default_display_split Bug: 394181799 Change-Id: Ie33aa1022e7861da3efe1ae0c8f11fd05d1eea4b
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
index 13940b1da257..6f7d992683cf 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
@@ -34,6 +34,7 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT;
import static android.window.TransitionInfo.FLAG_IS_DISPLAY;
import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_REORDER;
+import static com.android.window.flags.Flags.enableNonDefaultDisplaySplit;
import static com.android.wm.shell.Flags.enableFlexibleSplit;
import static com.android.wm.shell.Flags.enableFlexibleTwoAppSplit;
import static com.android.wm.shell.common.split.SplitLayout.PARALLAX_ALIGN_CENTER;
@@ -1697,6 +1698,13 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
wct.setWindowingMode(taskInfo.token, targetWindowingMode);
});
}
+ // Reparent root task to default display if non default display split is enabled.
+ if (enableNonDefaultDisplaySplit() && mRootTaskInfo.displayId != DEFAULT_DISPLAY) {
+ DisplayAreaInfo displayAreaInfo = mRootTDAOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY);
+ if (displayAreaInfo != null) {
+ wct.reparent(mRootTaskInfo.token, displayAreaInfo.token, false /* onTop */);
+ }
+ }
deactivateSplit(wct, stageToTop);
mSplitState.exit();
}