Fix side stage cannot be focused

When split active by drag drop, the active point is
onStageHasChildrenChanged callback but we don't reorder side stage
to top then make it cannot be focused.

Add reorder root to top for fixing.

Fix: 204510713
Test: manual
Test: pass existing tests
Change-Id: I553a57250c302ff435a35c9a10599fc375e48248
This commit is contained in:
Tony Huang
2021-10-29 13:15:59 +08:00
parent 44850438d9
commit 2003f5796c
2 changed files with 6 additions and 1 deletions

View File

@@ -45,6 +45,11 @@ class SideStage extends StageTaskListener {
stageTaskUnfoldController);
}
void moveToTop(Rect rootBounds, WindowContainerTransaction wct) {
final WindowContainerToken rootToken = mRootTaskInfo.token;
wct.setBounds(rootToken, rootBounds).reorder(rootToken, true /* onTop */);
}
void addTask(ActivityManager.RunningTaskInfo task, Rect rootBounds,
WindowContainerTransaction wct) {
final WindowContainerToken rootToken = mRootTaskInfo.token;

View File

@@ -758,7 +758,7 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
final WindowContainerTransaction wct = new WindowContainerTransaction();
// Make sure the main stage is active.
mMainStage.activate(getMainStageBounds(), wct, true /* reparent */);
mSideStage.setBounds(getSideStageBounds(), wct);
mSideStage.moveToTop(getSideStageBounds(), wct);
mTaskOrganizer.applyTransaction(wct);
}
if (!mLogger.hasStartedSession() && mMainStageListener.mHasChildren