From 2af04b31d9d5ff2b328a056f29cf030f0bf0d097 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Tue, 24 Jan 2017 16:21:13 -0800 Subject: [PATCH] Fix issue with PiP hiding when dragging divider. - Prevent the PiP windows from being set to drag resizing and getting clipped. Test: Open PiP, dock a window, and start interacting with the divider. Change-Id: I6a28a139261f1c3c09ec2b027e438df0411987c1 --- core/java/android/app/ActivityManager.java | 7 +++++++ services/core/java/com/android/server/wm/WindowState.java | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index 3cb920a6f28d9..3902bd6935945 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -697,6 +697,13 @@ public class ActivityManager { && stackId != DOCKED_STACK_ID && stackId != PINNED_STACK_ID; } + /** + * Returns true if the input stack is affected by drag resizing. + */ + public static boolean isStackAffectedByDragResizing(int stackId) { + return isStaticStack(stackId) && stackId != PINNED_STACK_ID; + } + /** * Returns true if the windows of tasks being moved to the target stack from the source * stack should be replaced, meaning that window manager will keep the old window around diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 10aebe662828d..0a5632336fba6 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -3198,8 +3198,10 @@ class WindowState extends WindowContainer implements WindowManagerP if (task == null) { return false; } + if (!StackId.isStackAffectedByDragResizing(getStackId())) { + return false; + } if (mAttrs.width != MATCH_PARENT || mAttrs.height != MATCH_PARENT) { - // Floating windows never enter drag resize mode. return false; }