From 370a9d729d84604ed4ccf0bdc2669894921bfd7a Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Wed, 28 Apr 2021 23:06:55 -0700 Subject: Skip setting focused window to the recents animation target - If there's a recents animation running, the target controls whether to finish to home (and resume the task), and with live tile, Launcher expects to stay started (but not resumed) until it finishes the transition. Fixes: 185317835 Test: Open an app that supports overview sharing and repeatedly enter Overview and trigger sharing Change-Id: Ib79b0f4b3cc2982365dc5c7ae0655953938cea3c --- .../core/java/com/android/server/wm/WindowManagerService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 9e8b6a34e1d5..dfc677278847 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -8123,6 +8123,16 @@ public class WindowManagerService extends IWindowManager.Stub return; } + if (mRecentsAnimationController != null + && mRecentsAnimationController.getTargetAppMainWindow() == touchedWindow) { + // If there is an active recents animation and touched window is the target, then ignore + // the touch. The target already handles touches using its own input monitor and we + // don't want to trigger any lifecycle changes from focusing another window. + // TODO(b/186770026): We should remove this once we support multiple resumed activities + // while in overview + return; + } + ProtoLog.i(WM_DEBUG_FOCUS_LIGHT, "onPointerDownOutsideFocusLocked called on %s", touchedWindow); final DisplayContent displayContent = touchedWindow.getDisplayContent(); -- cgit v1.2.3-59-g8ed1b