Fix scaling of batched motion events.

Change-Id: I1e070c936f7b2e8f1bb7ebae62b1df0aa6998b82
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 @@
         // 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) {