diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 28379f4913182..1f1648116b9d3 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -290,7 +290,7 @@ class DisplayContent { for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) { TaskStack stack = mStacks.get(stackNdx); stack.getBounds(mTmpRect); - if (!mTmpRect.contains(x, y)) { + if (!mTmpRect.contains(x, y) || stack.isAdjustedForMinimizedDockedStack()) { continue; } final ArrayList tasks = stack.getTasks(); diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java index eea0e73c1b0ba..be9fb26bb286a 100644 --- a/services/core/java/com/android/server/wm/InputMonitor.java +++ b/services/core/java/com/android/server/wm/InputMonitor.java @@ -294,7 +294,8 @@ final class InputMonitor implements InputManagerService.WindowManagerCallbacks { final WindowState child = windows.get(winNdx); final InputChannel inputChannel = child.mInputChannel; final InputWindowHandle inputWindowHandle = child.mInputWindowHandle; - if (inputChannel == null || inputWindowHandle == null || child.mRemoved) { + if (inputChannel == null || inputWindowHandle == null || child.mRemoved + || child.isAdjustedForMinimizedDock()) { // Skip this window because it cannot possibly receive input. continue; } diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index c991130b55e76..f4d1579fa585f 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1390,6 +1390,11 @@ final class WindowState implements WindowManagerPolicy.WindowState { return configChanged; } + boolean isAdjustedForMinimizedDock() { + return mAppToken != null && mAppToken.mTask != null + && mAppToken.mTask.mStack.isAdjustedForMinimizedDock(); + } + void removeLocked() { disposeInputChannel(); @@ -1776,7 +1781,8 @@ final class WindowState implements WindowManagerPolicy.WindowState { return isVisibleOrAdding() && (mViewVisibility == View.VISIBLE) && ((mAttrs.flags & WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) == 0) - && (mAppToken == null || mAppToken.windowsAreFocusable()); + && (mAppToken == null || mAppToken.windowsAreFocusable()) + && !isAdjustedForMinimizedDock(); } @Override