From 1ae68bfd59c811aca4be28be4c56c3ecf1d53b34 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Mon, 9 May 2016 18:44:34 -0700 Subject: [PATCH] Don't even try adjusting when dock is minimized Bug: 28652219 Change-Id: I61fa515ec945e1da6b9e7a53766abea2fb1e606e --- .../com/android/server/wm/DockedStackDividerController.java | 4 ++++ .../core/java/com/android/server/wm/WindowManagerService.java | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java index ca68d55dfb839..61425114ff9d5 100644 --- a/services/core/java/com/android/server/wm/DockedStackDividerController.java +++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java @@ -377,6 +377,10 @@ public class DockedStackDividerController implements DimLayerUser { checkMinimizeChanged(true /* animate */); } + boolean isMinimizedDock() { + return mMinimizedDock; + } + private void checkMinimizeChanged(boolean animate) { if (mDisplayContent.getDockedStackVisibleForUserLocked() == null) { return; diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index be888fed80bcf..9954f6217d097 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -7534,6 +7534,7 @@ public class WindowManagerService extends IWindowManager.Stub imeTargetStack.getDockSide() : DOCKED_INVALID; final boolean imeOnTop = (imeDockSide == DOCKED_TOP); final boolean imeOnBottom = (imeDockSide == DOCKED_BOTTOM); + final boolean dockMinimized = displayContent.mDividerControllerLocked.isMinimizedDock(); // The divider could be adjusted for IME position, or be thinner than usual, // or both. There are three possible cases: @@ -7541,7 +7542,7 @@ public class WindowManagerService extends IWindowManager.Stub // - If IME is visible, and focus is on bottom, divider is moved for IME and thinner. // - If IME is not visible, divider is not moved and is normal width. - if (imeVisible && dockVisible && (imeOnTop || imeOnBottom)) { + if (imeVisible && dockVisible && (imeOnTop || imeOnBottom) && !dockMinimized) { final ArrayList stacks = displayContent.getStacks(); for (int i = stacks.size() - 1; i >= 0; --i) { final TaskStack stack = stacks.get(i);