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<Task> tasks = stack.getTasks();
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;
}
return configChanged;
}
+ boolean isAdjustedForMinimizedDock() {
+ return mAppToken != null && mAppToken.mTask != null
+ && mAppToken.mTask.mStack.isAdjustedForMinimizedDock();
+ }
+
void removeLocked() {
disposeInputChannel();
return isVisibleOrAdding()
&& (mViewVisibility == View.VISIBLE)
&& ((mAttrs.flags & WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) == 0)
- && (mAppToken == null || mAppToken.windowsAreFocusable());
+ && (mAppToken == null || mAppToken.windowsAreFocusable())
+ && !isAdjustedForMinimizedDock();
}
@Override