| 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 6378ce21ff9968ecc7e1652a547c9d451f982fbf..864e468b329e487ff9b44bb3b2973b2dc511026e 100644
|
| --- a/ui/events/blink/blink_event_util.cc
|
| +++ b/ui/events/blink/blink_event_util.cc
|
| @@ -670,11 +670,17 @@ WebGestureEvent CreateWebGestureEvent(const GestureEventDetails& details,
|
| gesture.data.scrollBegin.pointerCount = details.touch_points();
|
| gesture.data.scrollBegin.deltaXHint = details.scroll_x_hint();
|
| gesture.data.scrollBegin.deltaYHint = details.scroll_y_hint();
|
| + gesture.data.scrollBegin.deltaHintUnits =
|
| + static_cast<blink::WebGestureEvent::ScrollUnits>(
|
| + details.scroll_units_hint());
|
| break;
|
| case ET_GESTURE_SCROLL_UPDATE:
|
| gesture.setType(WebInputEvent::GestureScrollUpdate);
|
| gesture.data.scrollUpdate.deltaX = details.scroll_x();
|
| gesture.data.scrollUpdate.deltaY = details.scroll_y();
|
| + gesture.data.scrollUpdate.deltaUnits =
|
| + static_cast<blink::WebGestureEvent::ScrollUnits>(
|
| + details.scroll_units());
|
| gesture.data.scrollUpdate.previousUpdateInSequencePrevented =
|
| details.previous_scroll_update_in_sequence_prevented();
|
| break;
|
| @@ -750,10 +756,12 @@ std::unique_ptr<blink::WebInputEvent> TranslateAndScaleWebInputEvent(
|
| wheel_event->y += delta.y();
|
| wheel_event->x *= scale;
|
| wheel_event->y *= scale;
|
| - wheel_event->deltaX *= scale;
|
| - wheel_event->deltaY *= scale;
|
| - wheel_event->wheelTicksX *= scale;
|
| - wheel_event->wheelTicksY *= scale;
|
| + if (!wheel_event->scrollByPage) {
|
| + wheel_event->deltaX *= scale;
|
| + wheel_event->deltaY *= scale;
|
| + wheel_event->wheelTicksX *= scale;
|
| + wheel_event->wheelTicksY *= scale;
|
| + }
|
| } else if (blink::WebInputEvent::isMouseEventType(event.type())) {
|
| blink::WebMouseEvent* mouse_event = new blink::WebMouseEvent;
|
| scaled_event.reset(mouse_event);
|
| @@ -788,12 +796,18 @@ std::unique_ptr<blink::WebInputEvent> TranslateAndScaleWebInputEvent(
|
| gesture_event->y *= scale;
|
| switch (gesture_event->type()) {
|
| case blink::WebInputEvent::GestureScrollUpdate:
|
| - gesture_event->data.scrollUpdate.deltaX *= scale;
|
| - gesture_event->data.scrollUpdate.deltaY *= scale;
|
| + if (gesture_event->data.scrollUpdate.deltaUnits !=
|
| + blink::WebGestureEvent::ScrollUnits::Page) {
|
| + gesture_event->data.scrollUpdate.deltaX *= scale;
|
| + gesture_event->data.scrollUpdate.deltaY *= scale;
|
| + }
|
| break;
|
| case blink::WebInputEvent::GestureScrollBegin:
|
| - gesture_event->data.scrollBegin.deltaXHint *= scale;
|
| - gesture_event->data.scrollBegin.deltaYHint *= scale;
|
| + if (gesture_event->data.scrollBegin.deltaHintUnits !=
|
| + blink::WebGestureEvent::ScrollUnits::Page) {
|
| + gesture_event->data.scrollBegin.deltaXHint *= scale;
|
| + gesture_event->data.scrollBegin.deltaYHint *= scale;
|
| + }
|
| break;
|
|
|
| case blink::WebInputEvent::GesturePinchUpdate:
|
|
|