| Index: Source/core/page/EventHandler.cpp
|
| diff --git a/Source/core/page/EventHandler.cpp b/Source/core/page/EventHandler.cpp
|
| index 9a76e6ebcaae7f80346e80340cb3bcfc03fc110b..aa01d165402f1bbde68710b31ade02ef09969c53 100644
|
| --- a/Source/core/page/EventHandler.cpp
|
| +++ b/Source/core/page/EventHandler.cpp
|
| @@ -172,18 +172,15 @@ private:
|
| double m_start;
|
| };
|
|
|
| -static inline ScrollGranularity wheelGranularityToScrollGranularity(unsigned deltaMode)
|
| +static inline ScrollGranularity wheelGranularityToScrollGranularity(WheelEvent* event)
|
| {
|
| - switch (deltaMode) {
|
| - case WheelEvent::DOM_DELTA_PAGE:
|
| + unsigned deltaMode = event->deltaMode();
|
| + if (deltaMode == WheelEvent::DOM_DELTA_PAGE)
|
| return ScrollByPage;
|
| - case WheelEvent::DOM_DELTA_LINE:
|
| + if (deltaMode == WheelEvent::DOM_DELTA_LINE)
|
| return ScrollByLine;
|
| - case WheelEvent::DOM_DELTA_PIXEL:
|
| - return ScrollByPixel;
|
| - default:
|
| - return ScrollByPixel;
|
| - }
|
| + ASSERT(deltaMode == WheelEvent::DOM_DELTA_PIXEL);
|
| + return event->hasPreciseScrollingDeltas() ? ScrollByPrecisePixel : ScrollByPixel;
|
| }
|
|
|
| // Refetch the event target node if it is removed or currently is the shadow node inside an <input> element.
|
| @@ -2044,7 +2041,7 @@ void EventHandler::defaultWheelEventHandler(Node* startNode, WheelEvent* wheelEv
|
| return;
|
|
|
| Node* stopNode = m_previousWheelScrolledNode.get();
|
| - ScrollGranularity granularity = wheelGranularityToScrollGranularity(wheelEvent->deltaMode());
|
| + ScrollGranularity granularity = wheelGranularityToScrollGranularity(wheelEvent);
|
|
|
| // Break up into two scrolls if we need to. Diagonal movement on
|
| // a MacBook pro is an example of a 2-dimensional mouse wheel event (where both deltaX and deltaY can be set).
|
|
|