Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1040)

Unified Diff: content/browser/renderer_host/input/motion_event_android.cc

Issue 494833003: Completed webkit radiusX, radiusY and rotationAngle handling. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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()));

Powered by Google App Engine
This is Rietveld 408576698