Chromium Code Reviews| Index: third_party/WebKit/Source/web/WebInputEventConversion.cpp |
| diff --git a/third_party/WebKit/Source/web/WebInputEventConversion.cpp b/third_party/WebKit/Source/web/WebInputEventConversion.cpp |
| index 946fd9dbeb680934bf9e6ecda7f32ff67b920722..58d1c02b59ac11e561f192c152f7c249a4c799f4 100644 |
| --- a/third_party/WebKit/Source/web/WebInputEventConversion.cpp |
| +++ b/third_party/WebKit/Source/web/WebInputEventConversion.cpp |
| @@ -49,7 +49,8 @@ |
| namespace blink { |
| -static float scaleDeltaToWindow(const Widget* widget, float delta) |
| +namespace { |
| +float scaleDeltaToWindow(const Widget* widget, float delta) |
| { |
| float scale = 1; |
| if (widget) { |
| @@ -60,7 +61,7 @@ static float scaleDeltaToWindow(const Widget* widget, float delta) |
| return delta / scale; |
| } |
| -static FloatSize scaleSizeToWindow(const Widget* widget, FloatSize size) |
| +FloatSize scaleSizeToWindow(const Widget* widget, FloatSize size) |
| { |
| return FloatSize(scaleDeltaToWindow(widget, size.width()), scaleDeltaToWindow(widget, size.height())); |
| } |
| @@ -70,7 +71,7 @@ static FloatSize scaleSizeToWindow(const Widget* widget, FloatSize size) |
| // in the root layer (see updateRootLayerTransform in WebViewImpl) as well as the overscroll effect on OSX. |
| // This is in addition to the visual viewport "pinch-zoom" transformation and is one of the few cases where |
| // the visual viewport is not equal to the renderer's coordinate-space. |
| -static FloatPoint convertHitPointToRootFrame(const Widget* widget, FloatPoint pointInRendererViewport) |
| +FloatPoint convertHitPointToRootFrame(const Widget* widget, FloatPoint pointInRendererViewport) |
| { |
| float scale = 1; |
| IntSize offset; |
| @@ -90,7 +91,7 @@ static FloatPoint convertHitPointToRootFrame(const Widget* widget, FloatPoint po |
| (pointInRendererViewport.y() - offset.height()) / scale + visualViewport.y() + overscrollOffset.height()); |
| } |
| -static unsigned toPlatformModifierFrom(WebMouseEvent::Button button) |
| +unsigned toPlatformModifierFrom(WebMouseEvent::Button button) |
| { |
| if (button == WebMouseEvent::ButtonNone) |
| return 0; |
| @@ -104,6 +105,38 @@ static unsigned toPlatformModifierFrom(WebMouseEvent::Button button) |
| return webMouseButtonToPlatformModifier[button]; |
| } |
| +ScrollGranularity toPlatformScrollGranularity(WebGestureEvent::ScrollUnits units) |
| +{ |
| + switch (units) { |
| + case WebGestureEvent::ScrollUnits::PrecisePixels: |
|
tdresser
2016/03/23 16:58:47
Indentation.
dtapuska
2016/03/23 17:25:30
This is std blink style.
|
| + return ScrollGranularity::ScrollByPrecisePixel; |
| + case WebGestureEvent::ScrollUnits::Pixels: |
| + return ScrollGranularity::ScrollByPixel; |
| + case WebGestureEvent::ScrollUnits::Page: |
| + return ScrollGranularity::ScrollByPage; |
| + default: |
| + ASSERT_NOT_REACHED(); |
| + return ScrollGranularity::ScrollByPrecisePixel; |
| + } |
| +} |
| + |
| +WebGestureEvent::ScrollUnits toWebGestureScrollUnits(ScrollGranularity granularity) |
| +{ |
| + switch (granularity) { |
| + case ScrollGranularity::ScrollByPrecisePixel: |
|
tdresser
2016/03/23 16:58:47
Indentation.
dtapuska
2016/03/23 17:25:30
This is std blink style.
|
| + return WebGestureEvent::ScrollUnits::PrecisePixels; |
| + case ScrollGranularity::ScrollByPixel: |
| + return WebGestureEvent::ScrollUnits::Pixels; |
| + case ScrollGranularity::ScrollByPage: |
| + return WebGestureEvent::ScrollUnits::Page; |
| + default: |
| + ASSERT_NOT_REACHED(); |
| + return WebGestureEvent::ScrollUnits::PrecisePixels; |
| + } |
| +} |
| + |
| +} // namespace |
| + |
| // MakePlatformMouseEvent ----------------------------------------------------- |
| // TODO(mustaq): Add tests for this. |
| @@ -185,10 +218,18 @@ PlatformGestureEventBuilder::PlatformGestureEventBuilder(Widget* widget, const W |
| case WebInputEvent::GestureScrollBegin: |
| m_type = PlatformEvent::GestureScrollBegin; |
| m_data.m_scroll.m_resendingPluginId = e.resendingPluginId; |
| + m_data.m_scroll.m_deltaX = e.data.scrollBegin.deltaXHint; |
| + m_data.m_scroll.m_deltaY = e.data.scrollBegin.deltaYHint; |
| + m_data.m_scroll.m_deltaUnits = toPlatformScrollGranularity(e.data.scrollBegin.deltaHintUnits); |
| + m_data.m_scroll.m_inertial = e.data.scrollBegin.inertial; |
| + m_data.m_scroll.m_synthetic = e.data.scrollBegin.synthetic; |
| break; |
| case WebInputEvent::GestureScrollEnd: |
| m_type = PlatformEvent::GestureScrollEnd; |
| m_data.m_scroll.m_resendingPluginId = e.resendingPluginId; |
| + m_data.m_scroll.m_deltaUnits = toPlatformScrollGranularity(e.data.scrollEnd.deltaUnits); |
| + m_data.m_scroll.m_inertial = e.data.scrollEnd.inertial; |
| + m_data.m_scroll.m_synthetic = e.data.scrollEnd.synthetic; |
| break; |
| case WebInputEvent::GestureFlingStart: |
| m_type = PlatformEvent::GestureFlingStart; |
| @@ -204,19 +245,7 @@ PlatformGestureEventBuilder::PlatformGestureEventBuilder(Widget* widget, const W |
| m_data.m_scroll.m_velocityY = e.data.scrollUpdate.velocityY; |
| m_data.m_scroll.m_preventPropagation = e.data.scrollUpdate.preventPropagation; |
| m_data.m_scroll.m_inertial = e.data.scrollUpdate.inertial; |
| - switch (e.data.scrollUpdate.deltaUnits) { |
| - case WebGestureEvent::ScrollUnits::PrecisePixels: |
| - m_data.m_scroll.m_deltaUnits = ScrollGranularity::ScrollByPrecisePixel; |
| - break; |
| - case WebGestureEvent::ScrollUnits::Pixels: |
| - m_data.m_scroll.m_deltaUnits = ScrollGranularity::ScrollByPixel; |
| - break; |
| - case WebGestureEvent::ScrollUnits::Page: |
| - m_data.m_scroll.m_deltaUnits = ScrollGranularity::ScrollByPage; |
| - break; |
| - default: |
| - ASSERT_NOT_REACHED(); |
| - } |
| + m_data.m_scroll.m_deltaUnits = toPlatformScrollGranularity(e.data.scrollUpdate.deltaUnits); |
| break; |
| case WebInputEvent::GestureTap: |
| m_type = PlatformEvent::GestureTap; |
| @@ -712,11 +741,20 @@ WebGestureEventBuilder::WebGestureEventBuilder(const LayoutObject* layoutObject, |
| } else if (event.type() == EventTypeNames::gesturescrollstart) { |
| type = GestureScrollBegin; |
| resendingPluginId = event.resendingPluginId(); |
| + data.scrollBegin.deltaXHint = event.deltaX(); |
| + data.scrollBegin.deltaYHint = event.deltaY(); |
| + data.scrollBegin.deltaHintUnits = toWebGestureScrollUnits(event.deltaUnits()); |
| + data.scrollBegin.inertial = event.inertial(); |
| + data.scrollBegin.synthetic = event.synthetic(); |
| } else if (event.type() == EventTypeNames::gesturescrollend) { |
| type = GestureScrollEnd; |
| resendingPluginId = event.resendingPluginId(); |
| + data.scrollEnd.deltaUnits = toWebGestureScrollUnits(event.deltaUnits()); |
| + data.scrollEnd.inertial = event.inertial(); |
| + data.scrollEnd.synthetic = event.synthetic(); |
| } else if (event.type() == EventTypeNames::gesturescrollupdate) { |
| type = GestureScrollUpdate; |
| + data.scrollUpdate.deltaUnits = toWebGestureScrollUnits(event.deltaUnits()); |
| data.scrollUpdate.deltaX = event.deltaX(); |
| data.scrollUpdate.deltaY = event.deltaY(); |
| data.scrollUpdate.inertial = event.inertial(); |