Loading include/ui/InputReader.h +2 −1 Original line number Diff line number Diff line Loading @@ -286,7 +286,8 @@ private: int32_t keyEventAction, int32_t keyEventFlags); void dispatchTouches(nsecs_t when, InputDevice* device, uint32_t policyFlags); void dispatchTouch(nsecs_t when, InputDevice* device, uint32_t policyFlags, InputDevice::TouchData* touch, BitSet32 idBits, int32_t motionEventAction); InputDevice::TouchData* touch, BitSet32 idBits, uint32_t changedId, int32_t motionEventAction); // display void resetDisplayProperties(); Loading libs/ui/InputReader.cpp +10 −9 Original line number Diff line number Diff line Loading @@ -766,7 +766,7 @@ void InputReader::dispatchTouches(nsecs_t when, // The dispatcher takes care of batching moves so we don't have to deal with that here. int32_t motionEventAction = AMOTION_EVENT_ACTION_MOVE; dispatchTouch(when, device, policyFlags, & device->touchScreen.currentTouch, currentIdBits, motionEventAction); currentIdBits, -1, motionEventAction); } else { // There may be pointers going up and pointers going down at the same time when pointer // ids are reported by the device driver. Loading @@ -784,12 +784,11 @@ void InputReader::dispatchTouches(nsecs_t when, if (activeIdBits.isEmpty()) { motionEventAction = AMOTION_EVENT_ACTION_UP; } else { motionEventAction = AMOTION_EVENT_ACTION_POINTER_UP | (upId << AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT); motionEventAction = AMOTION_EVENT_ACTION_POINTER_UP; } dispatchTouch(when, device, policyFlags, & device->touchScreen.lastTouch, oldActiveIdBits, motionEventAction); oldActiveIdBits, upId, motionEventAction); } while (! downIdBits.isEmpty()) { Loading @@ -803,18 +802,17 @@ void InputReader::dispatchTouches(nsecs_t when, motionEventAction = AMOTION_EVENT_ACTION_DOWN; device->touchScreen.downTime = when; } else { motionEventAction = AMOTION_EVENT_ACTION_POINTER_DOWN | (downId << AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT); motionEventAction = AMOTION_EVENT_ACTION_POINTER_DOWN; } dispatchTouch(when, device, policyFlags, & device->touchScreen.currentTouch, activeIdBits, motionEventAction); activeIdBits, downId, motionEventAction); } } } void InputReader::dispatchTouch(nsecs_t when, InputDevice* device, uint32_t policyFlags, InputDevice::TouchData* touch, BitSet32 idBits, InputDevice::TouchData* touch, BitSet32 idBits, uint32_t changedId, int32_t motionEventAction) { int32_t orientedWidth, orientedHeight; switch (mDisplayOrientation) { Loading Loading @@ -904,12 +902,15 @@ void InputReader::dispatchTouch(nsecs_t when, InputDevice* device, uint32_t poli pointerCoords[pointerCount].toolMinor = toolMinor; pointerCoords[pointerCount].orientation = orientation; if (id == changedId) { motionEventAction |= pointerCount << AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT; } pointerCount += 1; } // Check edge flags by looking only at the first pointer since the flags are // global to the event. // XXX Maybe we should revise the edge flags API to work on a per-pointer basis. int32_t motionEventEdgeFlags = 0; if (motionEventAction == AMOTION_EVENT_ACTION_DOWN) { if (pointerCoords[0].x <= 0) { Loading Loading
include/ui/InputReader.h +2 −1 Original line number Diff line number Diff line Loading @@ -286,7 +286,8 @@ private: int32_t keyEventAction, int32_t keyEventFlags); void dispatchTouches(nsecs_t when, InputDevice* device, uint32_t policyFlags); void dispatchTouch(nsecs_t when, InputDevice* device, uint32_t policyFlags, InputDevice::TouchData* touch, BitSet32 idBits, int32_t motionEventAction); InputDevice::TouchData* touch, BitSet32 idBits, uint32_t changedId, int32_t motionEventAction); // display void resetDisplayProperties(); Loading
libs/ui/InputReader.cpp +10 −9 Original line number Diff line number Diff line Loading @@ -766,7 +766,7 @@ void InputReader::dispatchTouches(nsecs_t when, // The dispatcher takes care of batching moves so we don't have to deal with that here. int32_t motionEventAction = AMOTION_EVENT_ACTION_MOVE; dispatchTouch(when, device, policyFlags, & device->touchScreen.currentTouch, currentIdBits, motionEventAction); currentIdBits, -1, motionEventAction); } else { // There may be pointers going up and pointers going down at the same time when pointer // ids are reported by the device driver. Loading @@ -784,12 +784,11 @@ void InputReader::dispatchTouches(nsecs_t when, if (activeIdBits.isEmpty()) { motionEventAction = AMOTION_EVENT_ACTION_UP; } else { motionEventAction = AMOTION_EVENT_ACTION_POINTER_UP | (upId << AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT); motionEventAction = AMOTION_EVENT_ACTION_POINTER_UP; } dispatchTouch(when, device, policyFlags, & device->touchScreen.lastTouch, oldActiveIdBits, motionEventAction); oldActiveIdBits, upId, motionEventAction); } while (! downIdBits.isEmpty()) { Loading @@ -803,18 +802,17 @@ void InputReader::dispatchTouches(nsecs_t when, motionEventAction = AMOTION_EVENT_ACTION_DOWN; device->touchScreen.downTime = when; } else { motionEventAction = AMOTION_EVENT_ACTION_POINTER_DOWN | (downId << AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT); motionEventAction = AMOTION_EVENT_ACTION_POINTER_DOWN; } dispatchTouch(when, device, policyFlags, & device->touchScreen.currentTouch, activeIdBits, motionEventAction); activeIdBits, downId, motionEventAction); } } } void InputReader::dispatchTouch(nsecs_t when, InputDevice* device, uint32_t policyFlags, InputDevice::TouchData* touch, BitSet32 idBits, InputDevice::TouchData* touch, BitSet32 idBits, uint32_t changedId, int32_t motionEventAction) { int32_t orientedWidth, orientedHeight; switch (mDisplayOrientation) { Loading Loading @@ -904,12 +902,15 @@ void InputReader::dispatchTouch(nsecs_t when, InputDevice* device, uint32_t poli pointerCoords[pointerCount].toolMinor = toolMinor; pointerCoords[pointerCount].orientation = orientation; if (id == changedId) { motionEventAction |= pointerCount << AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT; } pointerCount += 1; } // Check edge flags by looking only at the first pointer since the flags are // global to the event. // XXX Maybe we should revise the edge flags API to work on a per-pointer basis. int32_t motionEventEdgeFlags = 0; if (motionEventAction == AMOTION_EVENT_ACTION_DOWN) { if (pointerCoords[0].x <= 0) { Loading