diff options
author | Tony Huang <tonyychuang@google.com> | 2022-01-03 16:58:26 +0800 |
---|---|---|
committer | Tony Huang <tonyychuang@google.com> | 2022-01-03 19:03:02 +0800 |
commit | adae4870fb862acf83837922362ca1762c19c9aa (patch) | |
tree | 2a30704f1f23966bd22724277d6840c06a98acfa /libs | |
parent | a9831fcd24f1207881cee5919861f41ac35df72b (diff) |
Fix toucn unresponsive after half fold in split
After fold animation finished, it will always set null bounds crop
to surface and cause root task surface bounds abnormal.
Fix by ignoring root task surface in StageTaskUnfoldController
because it would not effect animation.
Fix: 211132158
Test: manual
Test: pass existing tests
Change-Id: Iece8f7e7d437bdff1cf9e738df3acc075729b993
Diffstat (limited to 'libs')
-rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskUnfoldController.java | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskUnfoldController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskUnfoldController.java index e904f6a9e22c..4849163e96fd 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskUnfoldController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskUnfoldController.java @@ -100,6 +100,9 @@ public class StageTaskUnfoldController implements UnfoldListener, OnInsetsChange * @param leash surface leash for the appeared task */ public void onTaskAppeared(ActivityManager.RunningTaskInfo taskInfo, SurfaceControl leash) { + // Only handle child task surface here. + if (!taskInfo.hasParentTask()) return; + AnimationContext context = new AnimationContext(leash); mAnimationContextByTaskId.put(taskInfo.taskId, context); } @@ -109,6 +112,8 @@ public class StageTaskUnfoldController implements UnfoldListener, OnInsetsChange * @param taskInfo info for the vanished task */ public void onTaskVanished(ActivityManager.RunningTaskInfo taskInfo) { + if (!taskInfo.hasParentTask()) return; + AnimationContext context = mAnimationContextByTaskId.get(taskInfo.taskId); if (context != null) { final SurfaceControl.Transaction transaction = mTransactionPool.acquire(); |