summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
author Ming-Shin Lu <lumark@google.com> 2022-05-05 18:04:56 +0000
committer Ming-Shin Lu <lumark@google.com> 2022-05-12 15:01:06 +0000
commitf6778d9f416910ec66d015cf5aaa2b862c77a1c5 (patch)
tree053af48121c9546d42e5586f2e1b333ff8a1d6af /libs
parent515e58e361c599cc4137ab02f219210ac7f5aae5 (diff)
Fix seeing "punch-hole" split-tasks when switching tasks from recents
If split-screen task is on the overview, since it has controlled by recents remote animation, we should not dismiss split-screen, in case when taping the side task on the overview to perform launch fullscreen task transition and animating split-screen in parallel but the transition leash can't control the split-tasks because of the split-screen dismissal. Fix: 228965939 Test: manual as issue steps: 1) launch several fullscreen apps 2) enter split-screen mode from the overview 3) swipe the split-screen task to overview again 4) tap the side task to let it going to foreground 5) verify the split-screen task should keep visible and animating as well. Change-Id: Ie5463cfd3a062d1166a52951ff55b77175ee42ed
Diffstat (limited to 'libs')
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
index f9e1b2fa4c7c..074beaa47fde 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
@@ -1444,8 +1444,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
// Enter overview panel, so start recent transition.
mSplitTransitions.setRecentTransition(transition,
request.getRemoteTransition());
- } else {
- // Occluded by the other fullscreen task, so dismiss both.
+ } else if (mSplitTransitions.mPendingRecent == null) {
+ // If split-task is not controlled by recents animation
+ // and occluded by the other fullscreen task, dismiss both.
prepareExitSplitScreen(STAGE_TYPE_UNDEFINED, out);
mSplitTransitions.setDismissTransition(transition,
STAGE_TYPE_UNDEFINED, EXIT_REASON_UNKNOWN);