diff options
Diffstat (limited to 'services/input/InputDispatcher.cpp')
-rw-r--r-- | services/input/InputDispatcher.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/services/input/InputDispatcher.cpp b/services/input/InputDispatcher.cpp index 0bef0db..ad64ccd 100644 --- a/services/input/InputDispatcher.cpp +++ b/services/input/InputDispatcher.cpp @@ -177,14 +177,6 @@ static bool validateMotionEvent(int32_t action, size_t pointerCount, return true; } -static void scalePointerCoords(const PointerCoords* inCoords, size_t count, float scaleFactor, - PointerCoords* outCoords) { - for (size_t i = 0; i < count; i++) { - outCoords[i] = inCoords[i]; - outCoords[i].scale(scaleFactor); - } -} - static void dumpRegion(String8& dump, const SkRegion& region) { if (region.isEmpty()) { dump.append("<empty>"); @@ -246,6 +238,8 @@ void InputDispatcher::dispatchOnce() { nsecs_t nextWakeupTime = LONG_LONG_MAX; { // acquire lock AutoMutex _l(mLock); + mDispatcherIsAliveCondition.broadcast(); + dispatchOnceInnerLocked(&nextWakeupTime); if (runCommandsLockedInterruptible()) { @@ -4094,6 +4088,8 @@ void InputDispatcher::dump(String8& dump) { void InputDispatcher::monitor() { // Acquire and release the lock to ensure that the dispatcher has not deadlocked. mLock.lock(); + mLooper->wake(); + mDispatcherIsAliveCondition.wait(mLock); mLock.unlock(); } |