diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index bc12923cb6b32..8982a776e2c36 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -649,14 +649,6 @@ class ActivityStack extends Task { if (prevWindowingMode != getWindowingMode()) { mDisplayContent.onStackWindowingModeChanged(this); - - if (inSplitScreenSecondaryWindowingMode()) { - // When the stack is resized due to entering split screen secondary, offset the - // windows to compensate for the new stack position. - forAllWindows(w -> { - w.mWinAnimator.setOffsetPositionForStackResize(true); - }, true); - } } final DisplayContent display = getDisplay(); @@ -3883,9 +3875,10 @@ class ActivityStack extends Task { return; } if (mTile != null) { - reparentSurfaceControl(getPendingTransaction(), mTile.getSurfaceControl()); + // don't use reparentSurfaceControl because we need to bypass taskorg check + mSurfaceAnimator.reparent(getPendingTransaction(), mTile.getSurfaceControl()); } else if (mTile == null && origTile != null) { - reparentSurfaceControl(getPendingTransaction(), getParentSurfaceControl()); + mSurfaceAnimator.reparent(getPendingTransaction(), getParentSurfaceControl()); } } diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 88d4fb31b16b0..6dc4389e8791f 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -3970,12 +3970,12 @@ class Task extends WindowContainer { boolean isControlledByTaskOrganizer() { final Task rootTask = getRootTask(); - return rootTask == this && rootTask.mTaskOrganizer != null - // TODO(task-hierarchy): Figure out how to control nested tasks. - // For now, if this is in a tile let WM drive. - && !(rootTask instanceof TaskTile) - && !(rootTask instanceof ActivityStack - && ((ActivityStack) rootTask).getTile() != null); + // if the rootTask is a "child" of a tile, then don't consider it a root task. + // TODO: remove this along with removing tile. + if (((ActivityStack) rootTask).getTile() != null) { + return false; + } + return rootTask == this && rootTask.mTaskOrganizer != null; } @Override