diff --git a/services/inputflinger/InputReader.cpp b/services/inputflinger/InputReader.cpp index a8ccf8bb0..05b1a9cb9 100644 --- a/services/inputflinger/InputReader.cpp +++ b/services/inputflinger/InputReader.cpp @@ -3282,6 +3282,9 @@ void TouchInputMapper::configureSurface(nsecs_t when, bool* outResetNeeded) { break; } + // Location + updateAffineTransformation(); + if (mDeviceMode == DEVICE_MODE_POINTER) { // Compute pointer gesture detection parameters. float rawDiagonal = hypotf(rawWidth, rawHeight); @@ -3660,7 +3663,8 @@ void TouchInputMapper::dumpAffineTransformation(String8& dump) { } void TouchInputMapper::updateAffineTransformation() { - mAffineTransform = getPolicy()->getTouchAffineTransformation(mDevice->getDescriptor()); + mAffineTransform = getPolicy()->getTouchAffineTransformation(mDevice->getDescriptor(), + mSurfaceOrientation); } void TouchInputMapper::reset(nsecs_t when) { diff --git a/services/inputflinger/InputReader.h b/services/inputflinger/InputReader.h index 43d486961..c1ce5f7c5 100644 --- a/services/inputflinger/InputReader.h +++ b/services/inputflinger/InputReader.h @@ -316,7 +316,7 @@ public: /* Gets the affine calibration associated with the specified device. */ virtual TouchAffineTransformation getTouchAffineTransformation( - const String8& inputDeviceDescriptor) = 0; + const String8& inputDeviceDescriptor, int32_t surfaceRotation) = 0; }; diff --git a/services/inputflinger/tests/InputReader_test.cpp b/services/inputflinger/tests/InputReader_test.cpp index 34d70aeb7..c6eb1fdd1 100644 --- a/services/inputflinger/tests/InputReader_test.cpp +++ b/services/inputflinger/tests/InputReader_test.cpp @@ -174,7 +174,8 @@ public: return mInputDevices; } - TouchAffineTransformation getTouchAffineTransformation(const String8& inputDeviceDescriptor) { + TouchAffineTransformation getTouchAffineTransformation(const String8& inputDeviceDescriptor, + int32_t surfaceRotation) { return transform; }