| Index: ui/events/android/motion_event_android.cc
|
| diff --git a/ui/events/android/motion_event_android.cc b/ui/events/android/motion_event_android.cc
|
| index 8e99aa3866b8d2e05e6d01c584f65f49eb460b4c..f7204720c788cbd9169acb334d3ac38cbb47a1d0 100644
|
| --- a/ui/events/android/motion_event_android.cc
|
| +++ b/ui/events/android/motion_event_android.cc
|
| @@ -15,6 +15,7 @@
|
| #include "ui/events/event_utils.h"
|
|
|
| using base::android::AttachCurrentThread;
|
| +using base::android::ScopedJavaLocalRef;
|
| using namespace JNI_MotionEvent;
|
|
|
| namespace ui {
|
| @@ -188,6 +189,7 @@ MotionEventAndroid::MotionEventAndroid(float pix_to_dip,
|
| jint pointer_count,
|
| jint history_size,
|
| jint action_index,
|
| + jint android_action_button,
|
| jint android_button_state,
|
| jint android_meta_state,
|
| jfloat raw_offset_x_pixels,
|
| @@ -200,6 +202,7 @@ MotionEventAndroid::MotionEventAndroid(float pix_to_dip,
|
| cached_pointer_count_(pointer_count),
|
| cached_history_size_(ToValidHistorySize(history_size, cached_action_)),
|
| cached_action_index_(action_index),
|
| + cached_action_button_(android_action_button),
|
| cached_button_state_(FromAndroidButtonState(android_button_state)),
|
| cached_flags_(ToEventFlags(android_meta_state, android_button_state)),
|
| cached_raw_position_offset_(ToDips(raw_offset_x_pixels),
|
| @@ -217,6 +220,26 @@ MotionEventAndroid::MotionEventAndroid(float pix_to_dip,
|
| cached_pointers_[1] = FromAndroidPointer(*pointer1);
|
| }
|
|
|
| +MotionEventAndroid::MotionEventAndroid(const MotionEventAndroid& e,
|
| + float x,
|
| + float y)
|
| + : event_(e.event_),
|
| + pix_to_dip_(e.pix_to_dip_),
|
| + cached_time_(e.cached_time_),
|
| + cached_action_(e.cached_action_),
|
| + cached_pointer_count_(e.cached_pointer_count_),
|
| + cached_history_size_(e.cached_history_size_),
|
| + cached_action_index_(e.cached_action_index_),
|
| + cached_action_button_(e.cached_action_button_),
|
| + cached_button_state_(e.cached_button_state_),
|
| + cached_flags_(e.cached_flags_),
|
| + cached_raw_position_offset_(e.cached_raw_position_offset_),
|
| + unique_event_id_(ui::GetNextTouchEventId()) {
|
| + for (size_t i = 0; i < cached_pointer_count_; i++) {
|
| + cached_pointers_[i] = FromCachedPointer(e.cached_pointers_[i], x, y);
|
| + }
|
| +}
|
| +
|
| MotionEventAndroid::~MotionEventAndroid() {
|
| }
|
|
|
| @@ -228,6 +251,14 @@ MotionEventAndroid::Action MotionEventAndroid::GetAction() const {
|
| return cached_action_;
|
| }
|
|
|
| +int MotionEventAndroid::GetActionButton() const {
|
| + return cached_action_button_;
|
| +}
|
| +
|
| +ScopedJavaLocalRef<jobject> MotionEventAndroid::GetJavaObject() const {
|
| + return ScopedJavaLocalRef<jobject>(event_);
|
| +}
|
| +
|
| int MotionEventAndroid::GetActionIndex() const {
|
| DCHECK(cached_action_ == MotionEvent::ACTION_POINTER_UP ||
|
| cached_action_ == MotionEvent::ACTION_POINTER_DOWN)
|
| @@ -388,4 +419,20 @@ MotionEventAndroid::CachedPointer MotionEventAndroid::FromAndroidPointer(
|
| return result;
|
| }
|
|
|
| +MotionEventAndroid::CachedPointer MotionEventAndroid::FromCachedPointer(
|
| + const CachedPointer& pointer,
|
| + float x,
|
| + float y) const {
|
| + CachedPointer result;
|
| + result.id = pointer.id;
|
| + result.position = gfx::PointF(pointer.position.x() + ToDips(x),
|
| + pointer.position.y() + ToDips(y));
|
| + result.touch_major = pointer.touch_major;
|
| + result.touch_minor = pointer.touch_minor;
|
| + result.orientation = pointer.orientation;
|
| + result.tilt = pointer.tilt;
|
| + result.tool_type = pointer.tool_type;
|
| + return result;
|
| +}
|
| +
|
| } // namespace content
|
|
|