Make sure to reorder side stage above main stage to prevent flicker

Always reorder side stage to the top whenever there's a child task
appeared in side stage. This is needed to prevent main stage occludes
newly launched task in side stage and causing itself flipping between
fullscreen and multi-window windowing mode.

Fix: 186614428
Bug: 169271875
Test: enter staged split by launching task with adjacent flag, screen
won't flicker

Change-Id: I9176a97439d687bbc7b0bf2dd9ddfdaecacfa455
This commit is contained in:
Jerry Chang
2021-05-01 01:10:37 +08:00
parent f941b5a2f4
commit 57b13e327f

View File

@@ -452,6 +452,10 @@ class StageCoordinator implements SplitLayout.LayoutChangeListener,
// Make sure the main stage is active.
mMainStage.activate(getMainStageBounds(), wct);
mSideStage.setBounds(getSideStageBounds(), wct);
// Reorder side stage to the top whenever there's a new child task appeared in side
// stage. This is needed to prevent main stage occludes side stage and makes main stage
// flipping between fullscreen and multi-window windowing mode.
wct.reorder(mSideStage.mRootTaskInfo.token, true);
mTaskOrganizer.applyTransaction(wct);
}
}