Index: third_party/WebKit/Source/core/input/ScrollManager.cpp |
diff --git a/third_party/WebKit/Source/core/input/ScrollManager.cpp b/third_party/WebKit/Source/core/input/ScrollManager.cpp |
index 826c4c77f167785127860349159a4c0ecacb5ac9..eb9bb291a5b4154d29092f18f64ffa505f0c9e42 100644 |
--- a/third_party/WebKit/Source/core/input/ScrollManager.cpp |
+++ b/third_party/WebKit/Source/core/input/ScrollManager.cpp |
@@ -22,7 +22,6 @@ |
#include "core/page/scrolling/RootScrollerController.h" |
#include "core/page/scrolling/ScrollState.h" |
#include "core/paint/PaintLayer.h" |
-#include "platform/PlatformGestureEvent.h" |
#include "wtf/PtrUtil.h" |
#include <memory> |
@@ -198,7 +197,7 @@ void ScrollManager::customizedScroll(const Node& startNode, |
} |
WebInputEventResult ScrollManager::handleGestureScrollBegin( |
- const PlatformGestureEvent& gestureEvent) { |
+ const WebGestureEvent& gestureEvent) { |
Document* document = m_frame->document(); |
if (document->layoutViewItem().isNull()) |
@@ -225,12 +224,13 @@ WebInputEventResult ScrollManager::handleGestureScrollBegin( |
m_currentScrollChain.clear(); |
std::unique_ptr<ScrollStateData> scrollStateData = |
makeUnique<ScrollStateData>(); |
- scrollStateData->position_x = gestureEvent.position().x(); |
- scrollStateData->position_y = gestureEvent.position().y(); |
+ IntPoint position = flooredIntPoint(gestureEvent.positionInRootFrame()); |
+ scrollStateData->position_x = position.x(); |
+ scrollStateData->position_y = position.y(); |
scrollStateData->is_beginning = true; |
scrollStateData->from_user_input = true; |
scrollStateData->is_direct_manipulation = |
- gestureEvent.source() == PlatformGestureSourceTouchscreen; |
+ gestureEvent.sourceDevice == WebGestureDeviceTouchscreen; |
scrollStateData->delta_consumed_for_scroll_sequence = |
m_deltaConsumedForScrollSequence; |
ScrollState* scrollState = ScrollState::create(std::move(scrollStateData)); |
@@ -239,8 +239,8 @@ WebInputEventResult ScrollManager::handleGestureScrollBegin( |
} |
WebInputEventResult ScrollManager::handleGestureScrollUpdate( |
- const PlatformGestureEvent& gestureEvent) { |
- DCHECK_EQ(gestureEvent.type(), PlatformEvent::GestureScrollUpdate); |
+ const WebGestureEvent& gestureEvent) { |
+ DCHECK_EQ(gestureEvent.type, WebInputEvent::GestureScrollUpdate); |
Node* node = m_scrollGestureHandlingNode.get(); |
if (!node || !node->layoutObject()) |
@@ -250,9 +250,10 @@ WebInputEventResult ScrollManager::handleGestureScrollUpdate( |
// scrolling occurs in the direction opposite the finger's movement |
// direction. e.g. Finger moving up has negative event delta but causes the |
// page to scroll down causing positive scroll delta. |
- FloatSize delta(-gestureEvent.deltaX(), -gestureEvent.deltaY()); |
+ FloatSize delta(-gestureEvent.deltaXInRootFrame(), |
+ -gestureEvent.deltaYInRootFrame()); |
FloatSize velocity(-gestureEvent.velocityX(), -gestureEvent.velocityY()); |
- FloatPoint position(gestureEvent.position()); |
+ FloatPoint position(gestureEvent.positionInRootFrame()); |
if (delta.isZero()) |
return WebInputEventResult::NotHandled; |
@@ -273,17 +274,17 @@ WebInputEventResult ScrollManager::handleGestureScrollUpdate( |
makeUnique<ScrollStateData>(); |
scrollStateData->delta_x = delta.width(); |
scrollStateData->delta_y = delta.height(); |
- scrollStateData->delta_granularity = |
- static_cast<double>(gestureEvent.deltaUnits()); |
+ scrollStateData->delta_granularity = static_cast<double>( |
+ toPlatformScrollGranularity(gestureEvent.deltaUnits())); |
scrollStateData->velocity_x = velocity.width(); |
scrollStateData->velocity_y = velocity.height(); |
scrollStateData->position_x = position.x(); |
scrollStateData->position_y = position.y(); |
scrollStateData->should_propagate = !gestureEvent.preventPropagation(); |
scrollStateData->is_in_inertial_phase = |
- gestureEvent.inertialPhase() == ScrollInertialPhaseMomentum; |
+ gestureEvent.inertialPhase() == WebGestureEvent::MomentumPhase; |
scrollStateData->is_direct_manipulation = |
- gestureEvent.source() == PlatformGestureSourceTouchscreen; |
+ gestureEvent.sourceDevice == WebGestureDeviceTouchscreen; |
scrollStateData->from_user_input = true; |
scrollStateData->delta_consumed_for_scroll_sequence = |
m_deltaConsumedForScrollSequence; |
@@ -320,7 +321,7 @@ WebInputEventResult ScrollManager::handleGestureScrollUpdate( |
} |
WebInputEventResult ScrollManager::handleGestureScrollEnd( |
- const PlatformGestureEvent& gestureEvent) { |
+ const WebGestureEvent& gestureEvent) { |
Node* node = m_scrollGestureHandlingNode; |
if (node && node->layoutObject()) { |
@@ -329,10 +330,10 @@ WebInputEventResult ScrollManager::handleGestureScrollEnd( |
makeUnique<ScrollStateData>(); |
scrollStateData->is_ending = true; |
scrollStateData->is_in_inertial_phase = |
- gestureEvent.inertialPhase() == ScrollInertialPhaseMomentum; |
+ gestureEvent.inertialPhase() == WebGestureEvent::MomentumPhase; |
scrollStateData->from_user_input = true; |
scrollStateData->is_direct_manipulation = |
- gestureEvent.source() == PlatformGestureSourceTouchscreen; |
+ gestureEvent.sourceDevice == WebGestureDeviceTouchscreen; |
scrollStateData->delta_consumed_for_scroll_sequence = |
m_deltaConsumedForScrollSequence; |
ScrollState* scrollState = ScrollState::create(std::move(scrollStateData)); |
@@ -351,7 +352,7 @@ FrameHost* ScrollManager::frameHost() const { |
} |
WebInputEventResult ScrollManager::passScrollGestureEventToWidget( |
- const PlatformGestureEvent& gestureEvent, |
+ const WebGestureEvent& gestureEvent, |
LayoutObject* layoutObject) { |
DCHECK(gestureEvent.isScrollEvent()); |
@@ -382,13 +383,13 @@ bool ScrollManager::isEffectiveRootScroller(const Node& node) const { |
} |
WebInputEventResult ScrollManager::handleGestureScrollEvent( |
- const PlatformGestureEvent& gestureEvent) { |
+ const WebGestureEvent& gestureEvent) { |
if (!m_frame->view()) |
return WebInputEventResult::NotHandled; |
Node* eventTarget = nullptr; |
Scrollbar* scrollbar = nullptr; |
- if (gestureEvent.type() != PlatformEvent::GestureScrollBegin) { |
+ if (gestureEvent.type != WebInputEvent::GestureScrollBegin) { |
scrollbar = m_scrollbarHandlingScrollGesture.get(); |
eventTarget = m_scrollGestureHandlingNode.get(); |
} |
@@ -399,7 +400,8 @@ WebInputEventResult ScrollManager::handleGestureScrollEvent( |
return WebInputEventResult::NotHandled; |
FrameView* view = m_frame->view(); |
- LayoutPoint viewPoint = view->rootFrameToContents(gestureEvent.position()); |
+ LayoutPoint viewPoint = view->rootFrameToContents( |
+ flooredIntPoint(gestureEvent.positionInRootFrame())); |
HitTestRequest request(HitTestRequest::ReadOnly); |
HitTestResult result(request, viewPoint); |
document->layoutViewItem().hitTest(result); |
@@ -442,17 +444,17 @@ WebInputEventResult ScrollManager::handleGestureScrollEvent( |
} |
} |
- switch (gestureEvent.type()) { |
- case PlatformEvent::GestureScrollBegin: |
+ switch (gestureEvent.type) { |
+ case WebInputEvent::GestureScrollBegin: |
return handleGestureScrollBegin(gestureEvent); |
- case PlatformEvent::GestureScrollUpdate: |
+ case WebInputEvent::GestureScrollUpdate: |
return handleGestureScrollUpdate(gestureEvent); |
- case PlatformEvent::GestureScrollEnd: |
+ case WebInputEvent::GestureScrollEnd: |
return handleGestureScrollEnd(gestureEvent); |
- case PlatformEvent::GestureFlingStart: |
- case PlatformEvent::GesturePinchBegin: |
- case PlatformEvent::GesturePinchEnd: |
- case PlatformEvent::GesturePinchUpdate: |
+ case WebInputEvent::GestureFlingStart: |
+ case WebInputEvent::GesturePinchBegin: |
+ case WebInputEvent::GesturePinchEnd: |
+ case WebInputEvent::GesturePinchUpdate: |
return WebInputEventResult::NotHandled; |
default: |
NOTREACHED(); |
@@ -466,15 +468,16 @@ bool ScrollManager::isScrollbarHandlingGestures() const { |
bool ScrollManager::handleScrollGestureOnResizer( |
Node* eventTarget, |
- const PlatformGestureEvent& gestureEvent) { |
- if (gestureEvent.source() != PlatformGestureSourceTouchscreen) |
+ const WebGestureEvent& gestureEvent) { |
+ if (gestureEvent.sourceDevice != WebGestureDeviceTouchscreen) |
return false; |
- if (gestureEvent.type() == PlatformEvent::GestureScrollBegin) { |
+ if (gestureEvent.type == WebInputEvent::GestureScrollBegin) { |
PaintLayer* layer = eventTarget->layoutObject() |
? eventTarget->layoutObject()->enclosingLayer() |
: nullptr; |
- IntPoint p = m_frame->view()->rootFrameToContents(gestureEvent.position()); |
+ IntPoint p = m_frame->view()->rootFrameToContents( |
+ flooredIntPoint(gestureEvent.positionInRootFrame())); |
if (layer && layer->getScrollableArea() && |
layer->getScrollableArea()->isPointInResizeControl(p, |
ResizerForTouch)) { |
@@ -484,12 +487,12 @@ bool ScrollManager::handleScrollGestureOnResizer( |
LayoutSize(m_resizeScrollableArea->offsetFromResizeCorner(p)); |
return true; |
} |
- } else if (gestureEvent.type() == PlatformEvent::GestureScrollUpdate) { |
+ } else if (gestureEvent.type == WebInputEvent::GestureScrollUpdate) { |
if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) { |
m_resizeScrollableArea->resize(gestureEvent, m_offsetFromResizeCorner); |
return true; |
} |
- } else if (gestureEvent.type() == PlatformEvent::GestureScrollEnd) { |
+ } else if (gestureEvent.type == WebInputEvent::GestureScrollEnd) { |
if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) { |
m_resizeScrollableArea->setInResizeMode(false); |
m_resizeScrollableArea = nullptr; |