summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/jni/android_view_MotionEvent.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/core/jni/android_view_MotionEvent.cpp b/core/jni/android_view_MotionEvent.cpp
index 92b7307395dd..ad6c0f26975a 100644
--- a/core/jni/android_view_MotionEvent.cpp
+++ b/core/jni/android_view_MotionEvent.cpp
@@ -678,7 +678,18 @@ static void android_view_MotionEvent_nativeTransform(JNIEnv* env, jclass clazz,
jint nativePtr, jobject matrixObj) {
SkMatrix* matrix = android_graphics_Matrix_getSkMatrix(env, matrixObj);
MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
- event->transform(matrix);
+
+ float m[9];
+ m[0] = SkScalarToFloat(matrix->get(SkMatrix::kMScaleX));
+ m[1] = SkScalarToFloat(matrix->get(SkMatrix::kMSkewX));
+ m[2] = SkScalarToFloat(matrix->get(SkMatrix::kMTransX));
+ m[3] = SkScalarToFloat(matrix->get(SkMatrix::kMSkewY));
+ m[4] = SkScalarToFloat(matrix->get(SkMatrix::kMScaleY));
+ m[5] = SkScalarToFloat(matrix->get(SkMatrix::kMTransY));
+ m[6] = SkScalarToFloat(matrix->get(SkMatrix::kMPersp0));
+ m[7] = SkScalarToFloat(matrix->get(SkMatrix::kMPersp1));
+ m[8] = SkScalarToFloat(matrix->get(SkMatrix::kMPersp2));
+ event->transform(m);
}
static jint android_view_MotionEvent_nativeReadFromParcel(JNIEnv* env, jclass clazz,