| Index: ui/events/blink/blink_event_util.cc
|
| diff --git a/ui/events/blink/blink_event_util.cc b/ui/events/blink/blink_event_util.cc
|
| index c0b32d721abb1868d8fe8fd7d86c0c87ad8d9eb9..fe83947ff3486e7dae95b5696f3855582e52ae6f 100644
|
| --- a/ui/events/blink/blink_event_util.cc
|
| +++ b/ui/events/blink/blink_event_util.cc
|
| @@ -362,13 +362,23 @@ WebGestureEvent CreateWebGestureEventFromGestureEventData(
|
| std::unique_ptr<blink::WebInputEvent> ScaleWebInputEvent(
|
| const blink::WebInputEvent& event,
|
| float scale) {
|
| + return TranslateAndScaleWebInputEvent(event, 0, 0, scale);
|
| +}
|
| +
|
| +std::unique_ptr<blink::WebInputEvent> TranslateAndScaleWebInputEvent(
|
| + const blink::WebInputEvent& event,
|
| + int delta_x,
|
| + int delta_y,
|
| + float scale) {
|
| std::unique_ptr<blink::WebInputEvent> scaled_event;
|
| - if (scale == 1.f)
|
| + if (scale == 1.f && delta_x == 0 && delta_y == 0)
|
| return scaled_event;
|
| if (event.type == blink::WebMouseEvent::MouseWheel) {
|
| blink::WebMouseWheelEvent* wheel_event = new blink::WebMouseWheelEvent;
|
| scaled_event.reset(wheel_event);
|
| *wheel_event = static_cast<const blink::WebMouseWheelEvent&>(event);
|
| + wheel_event->x += delta_x;
|
| + wheel_event->y += delta_y;
|
| wheel_event->x *= scale;
|
| wheel_event->y *= scale;
|
| wheel_event->deltaX *= scale;
|
| @@ -379,6 +389,8 @@ std::unique_ptr<blink::WebInputEvent> ScaleWebInputEvent(
|
| blink::WebMouseEvent* mouse_event = new blink::WebMouseEvent;
|
| scaled_event.reset(mouse_event);
|
| *mouse_event = static_cast<const blink::WebMouseEvent&>(event);
|
| + mouse_event->x += delta_x;
|
| + mouse_event->y += delta_y;
|
| mouse_event->x *= scale;
|
| mouse_event->y *= scale;
|
| mouse_event->windowX = mouse_event->x;
|
| @@ -390,6 +402,8 @@ std::unique_ptr<blink::WebInputEvent> ScaleWebInputEvent(
|
| scaled_event.reset(touch_event);
|
| *touch_event = static_cast<const blink::WebTouchEvent&>(event);
|
| for (unsigned i = 0; i < touch_event->touchesLength; i++) {
|
| + touch_event->touches[i].position.x += delta_x;
|
| + touch_event->touches[i].position.y += delta_y;
|
| touch_event->touches[i].position.x *= scale;
|
| touch_event->touches[i].position.y *= scale;
|
| touch_event->touches[i].radiusX *= scale;
|
| @@ -399,6 +413,8 @@ std::unique_ptr<blink::WebInputEvent> ScaleWebInputEvent(
|
| blink::WebGestureEvent* gesture_event = new blink::WebGestureEvent;
|
| scaled_event.reset(gesture_event);
|
| *gesture_event = static_cast<const blink::WebGestureEvent&>(event);
|
| + gesture_event->x += delta_x;
|
| + gesture_event->y += delta_y;
|
| gesture_event->x *= scale;
|
| gesture_event->y *= scale;
|
| switch (gesture_event->type) {
|
|
|