From 1bcc100c6fb8fa66c35a0fbf62ff13d4d0ed575b Mon Sep 17 00:00:00 2001 From: Kazuki Takise Date: Thu, 3 Oct 2024 04:27:10 +0000 Subject: 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 --- .../src/com/android/wm/shell/desktopmode/DesktopTasksController.kt | 2 +- .../com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java | 2 +- .../com/android/wm/shell/windowdecor/FluidResizeTaskPositioner.java | 3 ++- .../com/android/wm/shell/windowdecor/VeiledResizeTaskPositioner.java | 3 ++- 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); } } -- cgit v1.2.3-59-g8ed1b