Index: content/browser/renderer_host/input/motion_event_android.cc |
diff --git a/content/browser/renderer_host/input/motion_event_android.cc b/content/browser/renderer_host/input/motion_event_android.cc |
index 6688a3d24dd7c5d23bbac302e1eeb6903511df77..b77fe772b0b06d244078865b946b2692e0069131 100644 |
--- a/content/browser/renderer_host/input/motion_event_android.cc |
+++ b/content/browser/renderer_host/input/motion_event_android.cc |
@@ -114,6 +114,10 @@ MotionEventAndroid::MotionEventAndroid(float pix_to_dip, |
jint pointer_id_1, |
jfloat touch_major_0_pixels, |
jfloat touch_major_1_pixels, |
+ jfloat touch_minor_0_pixels, |
+ jfloat touch_minor_1_pixels, |
+ jfloat orientation_0_rad, |
+ jfloat orientation_1_rad, |
jfloat raw_pos_x_pixels, |
jfloat raw_pos_y_pixels, |
jint android_tool_type_0, |
@@ -139,6 +143,10 @@ MotionEventAndroid::MotionEventAndroid(float pix_to_dip, |
cached_pointer_ids_[1] = pointer_id_1; |
cached_touch_majors_[0] = ToDips(touch_major_0_pixels); |
cached_touch_majors_[1] = ToDips(touch_major_1_pixels); |
+ cached_touch_minors_[0] = ToDips(touch_minor_0_pixels); |
+ cached_touch_minors_[1] = ToDips(touch_minor_1_pixels); |
+ cached_orientations_[0] = orientation_0_rad; |
+ cached_orientations_[1] = orientation_1_rad; |
cached_raw_position_offset_ = |
ToDips(gfx::PointF(raw_pos_x_pixels, raw_pos_y_pixels)) - |
cached_positions_[0]; |
@@ -170,11 +178,17 @@ MotionEventAndroid::MotionEventAndroid(float pix_to_dip, |
cached_pointer_ids_[i] = Java_MotionEvent_getPointerId(env, event, i); |
cached_touch_majors_[i] = |
ToDips(Java_MotionEvent_getTouchMajorF_I(env, event, i)); |
+ cached_touch_minors_[i] = |
+ ToDips(Java_MotionEvent_getTouchMinorF_I(env, event, i)); |
+ cached_orientations_[i] = |
+ Java_MotionEvent_getOrientationF_I(env, event, i); |
cached_tool_types_[i] = |
FromAndroidToolType(Java_MotionEvent_getToolType(env, event, i)); |
} else { |
cached_pointer_ids_[i] = 0; |
cached_touch_majors_[i] = 0.f; |
+ cached_touch_minors_[i] = 0.f; |
+ cached_orientations_[i] = 0.f; |
cached_tool_types_[i] = MotionEvent::TOOL_TYPE_UNKNOWN; |
} |
} |
@@ -201,6 +215,8 @@ MotionEventAndroid::MotionEventAndroid(const MotionEventAndroid& other) |
cached_positions_[i] = other.cached_positions_[i]; |
cached_pointer_ids_[i] = other.cached_pointer_ids_[i]; |
cached_touch_majors_[i] = other.cached_touch_majors_[i]; |
+ cached_touch_minors_[i] = other.cached_touch_minors_[i]; |
+ cached_orientations_[i] = other.cached_orientations_[i]; |
cached_tool_types_[i] = other.cached_tool_types_[i]; |
} |
} |
@@ -266,6 +282,22 @@ float MotionEventAndroid::GetTouchMajor(size_t pointer_index) const { |
AttachCurrentThread(), event_.obj(), pointer_index)); |
} |
+float MotionEventAndroid::GetTouchMinor(size_t pointer_index) const { |
+ DCHECK_LT(pointer_index, cached_pointer_count_); |
+ if (pointer_index < MAX_POINTERS_TO_CACHE) |
+ return cached_touch_minors_[pointer_index]; |
+ return ToDips(Java_MotionEvent_getTouchMinorF_I(AttachCurrentThread(), |
+ event_.obj(), pointer_index)); |
+} |
+ |
+float MotionEventAndroid::GetOrientation(size_t pointer_index) const { |
+ DCHECK_LT(pointer_index, cached_pointer_count_); |
+ if (pointer_index < MAX_POINTERS_TO_CACHE) |
jdduke (slow)
2014/08/27 18:21:09
I've seen devices return NaN here, which could be
mustaq
2014/08/27 20:51:08
Done.
|
+ return cached_orientations_[pointer_index]; |
+ return Java_MotionEvent_getOrientationF_I( |
+ AttachCurrentThread(), event_.obj(), pointer_index); |
+} |
+ |
float MotionEventAndroid::GetPressure(size_t pointer_index) const { |
DCHECK_LT(pointer_index, cached_pointer_count_); |
return Java_MotionEvent_getPressureF_I( |
@@ -293,6 +325,20 @@ float MotionEventAndroid::GetHistoricalTouchMajor( |
AttachCurrentThread(), event_.obj(), pointer_index, historical_index)); |
} |
+float MotionEventAndroid::GetHistoricalTouchMinor( |
+ size_t pointer_index, |
+ size_t historical_index) const { |
+ return ToDips(Java_MotionEvent_getHistoricalTouchMinorF_I_I( |
+ AttachCurrentThread(), event_.obj(), pointer_index, historical_index)); |
+} |
+ |
+float MotionEventAndroid::GetHistoricalOrientation( |
+ size_t pointer_index, |
+ size_t historical_index) const { |
+ return Java_MotionEvent_getHistoricalOrientationF_I_I( |
+ AttachCurrentThread(), event_.obj(), pointer_index, historical_index); |
+} |
+ |
float MotionEventAndroid::GetHistoricalX(size_t pointer_index, |
size_t historical_index) const { |
return ToDips(Java_MotionEvent_getHistoricalXF_I_I( |
@@ -337,15 +383,6 @@ scoped_ptr<ui::MotionEvent> MotionEventAndroid::Cancel() const { |
position_pixels.y()).obj())); |
} |
-float MotionEventAndroid::GetTouchMinor(size_t pointer_index) const { |
- return ToDips(Java_MotionEvent_getTouchMinorF_I( |
- AttachCurrentThread(), event_.obj(), pointer_index)); |
-} |
- |
-float MotionEventAndroid::GetOrientation() const { |
- return Java_MotionEvent_getOrientationF(AttachCurrentThread(), event_.obj()); |
-} |
- |
base::TimeTicks MotionEventAndroid::GetDownTime() const { |
return FromAndroidTime( |
Java_MotionEvent_getDownTime(AttachCurrentThread(), event_.obj())); |