diff options
| author | 2024-10-03 04:27:10 +0000 | |
|---|---|---|
| committer | 2024-10-08 04:43:11 +0000 | |
| commit | 1bcc100c6fb8fa66c35a0fbf62ff13d4d0ed575b (patch) | |
| tree | a59d3e0667eeae2058046f738c0fe4c3e943b39b | |
| parent | 6dd05c69475933ccb67d783362e9561040b582cb (diff) | |
Move display to top when task gets moved to front in desktop mode
When a task gets moved to front, the dipslay the task is on should
also come on top and get display focus, but this isn't working now
when caption bar is clicked because the includingParents param of
WCT#reorder() is set to false as its default value.
Bug: 368200134
Bug: 371086263
Flag: EXEMPT bugfix
Test: atest WMShellUnitTests
Change-Id: If4cf47796d30e76398153e823fa5082746dd636f
4 files changed, 6 insertions, 4 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt index 5b9d2fed2701..5f41326daf0c 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt @@ -581,7 +581,7 @@ class DesktopTasksController( fun moveTaskToFront(taskInfo: RunningTaskInfo) { logV("moveTaskToFront taskId=%s", taskInfo.taskId) val wct = WindowContainerTransaction() - wct.reorder(taskInfo.token, true) + wct.reorder(taskInfo.token, true /* onTop */, true /* includingParents */) val taskToMinimize = addAndGetMinimizeChangesIfNeeded(taskInfo.displayId, wct, taskInfo.taskId) if (Transitions.ENABLE_SHELL_TRANSITIONS) { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java index f5b2340b87a7..c540edef32c4 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java @@ -361,7 +361,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { final RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(mTaskId); if (!taskInfo.isFocused) { final WindowContainerTransaction wct = new WindowContainerTransaction(); - wct.reorder(mTaskToken, true /* onTop */); + wct.reorder(mTaskToken, true /* onTop */, true /* includingParents */); mSyncQueue.queue(wct); } } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FluidResizeTaskPositioner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FluidResizeTaskPositioner.java index 3853f1f086c1..f4c7fe3eac0c 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FluidResizeTaskPositioner.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FluidResizeTaskPositioner.java @@ -95,7 +95,8 @@ class FluidResizeTaskPositioner implements TaskPositioner, Transitions.Transitio mDragStartListener.onDragStart(mWindowDecoration.mTaskInfo.taskId); if (mCtrlType != CTRL_TYPE_UNDEFINED && !mWindowDecoration.mTaskInfo.isFocused) { WindowContainerTransaction wct = new WindowContainerTransaction(); - wct.reorder(mWindowDecoration.mTaskInfo.token, true); + wct.reorder(mWindowDecoration.mTaskInfo.token, true /* onTop */, + true /* includingParents */); mTaskOrganizer.applyTransaction(wct); } mRepositionTaskBounds.set(mTaskBoundsAtDragStart); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/VeiledResizeTaskPositioner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/VeiledResizeTaskPositioner.java index 6eb5cca9ad1a..a1f76d2d1597 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/VeiledResizeTaskPositioner.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/VeiledResizeTaskPositioner.java @@ -108,7 +108,8 @@ public class VeiledResizeTaskPositioner implements TaskPositioner, Transitions.T mDesktopWindowDecoration.mContext, mHandler, CUJ_DESKTOP_MODE_RESIZE_WINDOW); if (!mDesktopWindowDecoration.mTaskInfo.isFocused) { WindowContainerTransaction wct = new WindowContainerTransaction(); - wct.reorder(mDesktopWindowDecoration.mTaskInfo.token, true); + wct.reorder(mDesktopWindowDecoration.mTaskInfo.token, true /* onTop */, + true /* includingParents */); mTaskOrganizer.applyTransaction(wct); } } |