Loading include/ui/InputDispatcher.h +3 −0 Original line number Diff line number Diff line Loading @@ -1046,6 +1046,9 @@ private: // Splitting motion events across windows. MotionEntry* splitMotionEvent(const MotionEntry* originalMotionEntry, BitSet32 pointerIds); // Reset and drop everything the dispatcher is doing. void resetAndDropEverythingLocked(const char* reason); // Dump state. void dumpDispatchStateLocked(String8& dump); void logDispatchStateLocked(); Loading libs/ui/InputDispatcher.cpp +23 −1 Original line number Diff line number Diff line Loading @@ -1305,6 +1305,9 @@ Failed: } Unresponsive: // Reset temporary touch state to ensure we release unnecessary references to input channels. mTempTouchState.reset(); nsecs_t timeSpentWaitingForApplication = getTimeSpentWaitingForApplicationLocked(currentTime); updateDispatchStatisticsLocked(currentTime, entry, injectionResult, timeSpentWaitingForApplication); Loading Loading @@ -2593,6 +2596,10 @@ void InputDispatcher::setInputDispatchMode(bool enabled, bool frozen) { resetANRTimeoutsLocked(); } if (mDispatchEnabled && !enabled) { resetAndDropEverythingLocked("dispatcher is being disabled"); } mDispatchEnabled = enabled; mDispatchFrozen = frozen; changed = true; Loading Loading @@ -2687,6 +2694,21 @@ bool InputDispatcher::transferTouchFocus(const sp<InputChannel>& fromChannel, return true; } void InputDispatcher::resetAndDropEverythingLocked(const char* reason) { #if DEBUG_FOCUS LOGD("Resetting and dropping all events (%s).", reason); #endif synthesizeCancelationEventsForAllConnectionsLocked(InputState::CANCEL_ALL_EVENTS, reason); resetKeyRepeatLocked(); releasePendingEventLocked(); drainInboundQueueLocked(); resetTargetsLocked(); mTouchState.reset(); } void InputDispatcher::logDispatchStateLocked() { String8 dump; dumpDispatchStateLocked(dump); Loading Loading
include/ui/InputDispatcher.h +3 −0 Original line number Diff line number Diff line Loading @@ -1046,6 +1046,9 @@ private: // Splitting motion events across windows. MotionEntry* splitMotionEvent(const MotionEntry* originalMotionEntry, BitSet32 pointerIds); // Reset and drop everything the dispatcher is doing. void resetAndDropEverythingLocked(const char* reason); // Dump state. void dumpDispatchStateLocked(String8& dump); void logDispatchStateLocked(); Loading
libs/ui/InputDispatcher.cpp +23 −1 Original line number Diff line number Diff line Loading @@ -1305,6 +1305,9 @@ Failed: } Unresponsive: // Reset temporary touch state to ensure we release unnecessary references to input channels. mTempTouchState.reset(); nsecs_t timeSpentWaitingForApplication = getTimeSpentWaitingForApplicationLocked(currentTime); updateDispatchStatisticsLocked(currentTime, entry, injectionResult, timeSpentWaitingForApplication); Loading Loading @@ -2593,6 +2596,10 @@ void InputDispatcher::setInputDispatchMode(bool enabled, bool frozen) { resetANRTimeoutsLocked(); } if (mDispatchEnabled && !enabled) { resetAndDropEverythingLocked("dispatcher is being disabled"); } mDispatchEnabled = enabled; mDispatchFrozen = frozen; changed = true; Loading Loading @@ -2687,6 +2694,21 @@ bool InputDispatcher::transferTouchFocus(const sp<InputChannel>& fromChannel, return true; } void InputDispatcher::resetAndDropEverythingLocked(const char* reason) { #if DEBUG_FOCUS LOGD("Resetting and dropping all events (%s).", reason); #endif synthesizeCancelationEventsForAllConnectionsLocked(InputState::CANCEL_ALL_EVENTS, reason); resetKeyRepeatLocked(); releasePendingEventLocked(); drainInboundQueueLocked(); resetTargetsLocked(); mTouchState.reset(); } void InputDispatcher::logDispatchStateLocked() { String8 dump; dumpDispatchStateLocked(dump); Loading