diff options
| -rw-r--r-- | services/inputflinger/dispatcher/InputDispatcher.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/services/inputflinger/dispatcher/InputDispatcher.cpp b/services/inputflinger/dispatcher/InputDispatcher.cpp index f2612cf92d..06645a129b 100644 --- a/services/inputflinger/dispatcher/InputDispatcher.cpp +++ b/services/inputflinger/dispatcher/InputDispatcher.cpp @@ -1058,7 +1058,10 @@ void InputDispatcher::dispatchOnceInnerLocked(nsecs_t* nextWakeupTime) { dropReason = DropReason::STALE; } if (dropReason == DropReason::NOT_DROPPED && mNextUnblockedEvent) { - dropReason = DropReason::BLOCKED; + if (!isFromSource(motionEntry->source, AINPUT_SOURCE_CLASS_POINTER)) { + // Only drop events that are focus-dispatched. + dropReason = DropReason::BLOCKED; + } } done = dispatchMotionLocked(currentTime, motionEntry, &dropReason, nextWakeupTime); break; |