| 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 3768d8c609e0435966467a7ef58fd432645b423d..403655944a995680dd8ab1b9caeedbea75b95a42 100644
|
| --- a/ui/events/android/motion_event_android.cc
|
| +++ b/ui/events/android/motion_event_android.cc
|
| @@ -261,12 +261,18 @@ MotionEventAndroid::MotionEventAndroid(const MotionEventAndroid& e)
|
| cached_pointers_[1] = e.cached_pointers_[1];
|
| }
|
|
|
| -std::unique_ptr<MotionEventAndroid> MotionEventAndroid::Offset(float x,
|
| - float y) const {
|
| +std::unique_ptr<MotionEventAndroid> MotionEventAndroid::CreateFor(
|
| + const gfx::Point& point) const {
|
| std::unique_ptr<MotionEventAndroid> event(new MotionEventAndroid(*this));
|
| - event->cached_pointers_[0] = OffsetCachedPointer(cached_pointers_[0], x, y);
|
| - if (cached_pointer_count_ > 1)
|
| - event->cached_pointers_[1] = OffsetCachedPointer(cached_pointers_[1], x, y);
|
| + gfx::PointF point_f(point);
|
| + if (cached_pointer_count_ > 1) {
|
| + gfx::Vector2dF diff = event->cached_pointers_[1].position -
|
| + event->cached_pointers_[0].position;
|
| + event->cached_pointers_[1] =
|
| + CreateCachedPointer(cached_pointers_[1], point_f + diff);
|
| + }
|
| + event->cached_pointers_[0] =
|
| + CreateCachedPointer(cached_pointers_[0], point_f);
|
| return event;
|
| }
|
|
|
| @@ -475,14 +481,12 @@ MotionEventAndroid::CachedPointer MotionEventAndroid::FromAndroidPointer(
|
| return result;
|
| }
|
|
|
| -MotionEventAndroid::CachedPointer MotionEventAndroid::OffsetCachedPointer(
|
| +MotionEventAndroid::CachedPointer MotionEventAndroid::CreateCachedPointer(
|
| const CachedPointer& pointer,
|
| - float x,
|
| - float y) const {
|
| + const gfx::PointF& point) const {
|
| CachedPointer result;
|
| result.id = pointer.id;
|
| - result.position = gfx::PointF(pointer.position.x() + ToDips(x),
|
| - pointer.position.y() + ToDips(y));
|
| + result.position = point;
|
| result.touch_major = pointer.touch_major;
|
| result.touch_minor = pointer.touch_minor;
|
| result.orientation = pointer.orientation;
|
|
|