Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +6 −3 Original line number Diff line number Diff line Loading @@ -2632,6 +2632,12 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, wct.reparent(mSideStage.mRootTaskInfo.token, rootTaskInfo.token, true); } if (splitDisableChildTaskBounds()) { // Disallow child tasks to override bounds and always inherits from the stage root tasks wct.setDisallowOverrideBoundsForChildren(mMainStage.mRootTaskInfo.token, true); wct.setDisallowOverrideBoundsForChildren(mSideStage.mRootTaskInfo.token, true); } setRootForceTranslucent(true, wct); if (!enableFlexibleSplit()) { // TODO: consider support 3 splits Loading @@ -2641,9 +2647,6 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSplitLayout.getInvisibleBounds(mTempRect1); wct.setBounds(mSideStage.mRootTaskInfo.token, mTempRect1); } if (splitDisableChildTaskBounds()) { wct.setDisallowOverrideBoundsForChildren(rootTaskInfo.token, true); } mSyncQueue.queue(wct); if (!enableFlexibleSplit()) { mSyncQueue.runInSync(t -> { Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java +5 −2 Original line number Diff line number Diff line Loading @@ -668,9 +668,12 @@ public class StageCoordinatorTests extends ShellTestCase { .filter(op -> op.getType() == HIERARCHY_OP_TYPE_DISALLOW_OVERRIDE_BOUNDS_FOR_CHILDREN) .toList(); assertThat(disableChildBoundsOps).hasSize(1); assertThat(disableChildBoundsOps).hasSize(2); HierarchyOp op = disableChildBoundsOps.getFirst(); assertThat(op.getContainer()).isEqualTo(rootTaskInfo.token.asBinder()); assertThat(op.getContainer()).isEqualTo(mMainStage.mRootTaskInfo.token.asBinder()); assertThat(op.getDisallowOverrideBoundsForChildren()).isTrue(); op = disableChildBoundsOps.get(1); assertThat(op.getContainer()).isEqualTo(mSideStage.mRootTaskInfo.token.asBinder()); assertThat(op.getDisallowOverrideBoundsForChildren()).isTrue(); } Loading services/core/java/com/android/server/wm/Task.java +10 −0 Original line number Diff line number Diff line Loading @@ -2177,6 +2177,16 @@ class Task extends TaskFragment { } } @Override public void onRequestedOverrideConfigurationChanged( @NonNull Configuration overrideConfiguration) { if (!overrideConfiguration.windowConfiguration.getBounds().isEmpty() && !isOverrideBoundsAllowed()) { overrideConfiguration.windowConfiguration.setBounds(new Rect()); } super.onRequestedOverrideConfigurationChanged(overrideConfiguration); } @Override public void onConfigurationChanged(Configuration newParentConfig) { if (mDisplayContent != null Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +6 −3 Original line number Diff line number Diff line Loading @@ -2632,6 +2632,12 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, wct.reparent(mSideStage.mRootTaskInfo.token, rootTaskInfo.token, true); } if (splitDisableChildTaskBounds()) { // Disallow child tasks to override bounds and always inherits from the stage root tasks wct.setDisallowOverrideBoundsForChildren(mMainStage.mRootTaskInfo.token, true); wct.setDisallowOverrideBoundsForChildren(mSideStage.mRootTaskInfo.token, true); } setRootForceTranslucent(true, wct); if (!enableFlexibleSplit()) { // TODO: consider support 3 splits Loading @@ -2641,9 +2647,6 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSplitLayout.getInvisibleBounds(mTempRect1); wct.setBounds(mSideStage.mRootTaskInfo.token, mTempRect1); } if (splitDisableChildTaskBounds()) { wct.setDisallowOverrideBoundsForChildren(rootTaskInfo.token, true); } mSyncQueue.queue(wct); if (!enableFlexibleSplit()) { mSyncQueue.runInSync(t -> { Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java +5 −2 Original line number Diff line number Diff line Loading @@ -668,9 +668,12 @@ public class StageCoordinatorTests extends ShellTestCase { .filter(op -> op.getType() == HIERARCHY_OP_TYPE_DISALLOW_OVERRIDE_BOUNDS_FOR_CHILDREN) .toList(); assertThat(disableChildBoundsOps).hasSize(1); assertThat(disableChildBoundsOps).hasSize(2); HierarchyOp op = disableChildBoundsOps.getFirst(); assertThat(op.getContainer()).isEqualTo(rootTaskInfo.token.asBinder()); assertThat(op.getContainer()).isEqualTo(mMainStage.mRootTaskInfo.token.asBinder()); assertThat(op.getDisallowOverrideBoundsForChildren()).isTrue(); op = disableChildBoundsOps.get(1); assertThat(op.getContainer()).isEqualTo(mSideStage.mRootTaskInfo.token.asBinder()); assertThat(op.getDisallowOverrideBoundsForChildren()).isTrue(); } Loading
services/core/java/com/android/server/wm/Task.java +10 −0 Original line number Diff line number Diff line Loading @@ -2177,6 +2177,16 @@ class Task extends TaskFragment { } } @Override public void onRequestedOverrideConfigurationChanged( @NonNull Configuration overrideConfiguration) { if (!overrideConfiguration.windowConfiguration.getBounds().isEmpty() && !isOverrideBoundsAllowed()) { overrideConfiguration.windowConfiguration.setBounds(new Rect()); } super.onRequestedOverrideConfigurationChanged(overrideConfiguration); } @Override public void onConfigurationChanged(Configuration newParentConfig) { if (mDisplayContent != null Loading