Chromium Code Reviews| 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..ac5a14aa438e64447b6d164dd6e5e71aa0ce581e 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_begin_units()); |
| 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_update_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) { |
|
Bret
2017/02/17 21:06:03
Test for this too?
chengx
2017/02/17 21:57:44
Yep, added.
|
| + 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: |