diff options
| -rw-r--r-- | include/ui/InputDispatcher.h | 1 | ||||
| -rw-r--r-- | libs/ui/InputDispatcher.cpp | 7 |
2 files changed, 5 insertions, 3 deletions
diff --git a/include/ui/InputDispatcher.h b/include/ui/InputDispatcher.h index 3599163d1b..4955d473f0 100644 --- a/include/ui/InputDispatcher.h +++ b/include/ui/InputDispatcher.h @@ -183,6 +183,7 @@ struct InputWindow { TYPE_INPUT_METHOD_DIALOG= FIRST_SYSTEM_WINDOW+12, TYPE_WALLPAPER = FIRST_SYSTEM_WINDOW+13, TYPE_STATUS_BAR_PANEL = FIRST_SYSTEM_WINDOW+14, + TYPE_SECURE_SYSTEM_OVERLAY = FIRST_SYSTEM_WINDOW+15, LAST_SYSTEM_WINDOW = 2999, }; diff --git a/libs/ui/InputDispatcher.cpp b/libs/ui/InputDispatcher.cpp index 6ba19d79f9..92daee19ea 100644 --- a/libs/ui/InputDispatcher.cpp +++ b/libs/ui/InputDispatcher.cpp @@ -149,7 +149,8 @@ bool InputWindow::frameContainsPoint(int32_t x, int32_t y) const { bool InputWindow::isTrustedOverlay() const { return layoutParamsType == TYPE_INPUT_METHOD - || layoutParamsType == TYPE_INPUT_METHOD_DIALOG; + || layoutParamsType == TYPE_INPUT_METHOD_DIALOG + || layoutParamsType == TYPE_SECURE_SYSTEM_OVERLAY; } @@ -1350,7 +1351,7 @@ void InputDispatcher::addMonitoringTargetsLocked() { target.flags = 0; target.xOffset = 0; target.yOffset = 0; - target.windowType = InputWindow::TYPE_SYSTEM_OVERLAY; + target.windowType = -1; } } @@ -2535,9 +2536,9 @@ void InputDispatcher::setInputWindows(const Vector<InputWindow>& inputWindows) { #if DEBUG_FOCUS LOGD("Touched window was removed: %s", touchedWindow.channel->getName().string()); #endif - mTouchState.windows.removeAt(i); synthesizeCancelationEventsForInputChannelLocked(touchedWindow.channel, InputState::CANCEL_POINTER_EVENTS, "touched window was removed"); + mTouchState.windows.removeAt(i); } } |