diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java index c9c0e40f616ce..acee343d8597f 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java @@ -312,6 +312,20 @@ public class DesktopModeController implements RemoteCallable c.setDesktopModeActive(true)); @@ -272,9 +273,17 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { if (id != R.id.caption_handle && id != R.id.desktop_mode_caption) { return false; } + moveTaskToFront(mTaskOrganizer.getRunningTaskInfo(mTaskId)); return mDragDetector.onMotionEvent(e); } + private void moveTaskToFront(RunningTaskInfo taskInfo) { + if (!taskInfo.isFocused) { + mDesktopTasksController.ifPresent(c -> c.moveTaskToFront(taskInfo)); + mDesktopModeController.ifPresent(c -> c.moveTaskToFront(taskInfo)); + } + } + /** * @param e {@link MotionEvent} to process * @return {@code true} if the motion event is handled.