From e7d25b74b0f5c8ad32225c7a3e98a0d1717eb7c7 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 9 May 2011 21:19:26 -0700 Subject: Fix scaling of batched motion events. Change-Id: I1e070c936f7b2e8f1bb7ebae62b1df0aa6998b82 --- services/input/InputDispatcher.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'services/input') diff --git a/services/input/InputDispatcher.cpp b/services/input/InputDispatcher.cpp index f8a5cfb..a94e0e9 100644 --- a/services/input/InputDispatcher.cpp +++ b/services/input/InputDispatcher.cpp @@ -1888,6 +1888,14 @@ void InputDispatcher::startDispatchCycleLocked(nsecs_t currentTime, // Append additional motion samples. MotionSample* nextMotionSample = firstMotionSample->next; for (; nextMotionSample != NULL; nextMotionSample = nextMotionSample->next) { + if ((motionEntry->source & AINPUT_SOURCE_CLASS_POINTER) != 0 && scaleFactor != 1.0f) { + for (size_t i = 0; i < motionEntry->pointerCount; i++) { + scaledCoords[i] = nextMotionSample->pointerCoords[i]; + scaledCoords[i].scale(scaleFactor); + } + } else { + usingCoords = nextMotionSample->pointerCoords; + } status = connection->inputPublisher.appendMotionSample( nextMotionSample->eventTime, usingCoords); if (status == NO_MEMORY) { -- cgit v1.1