Index: third_party/WebKit/Source/core/page/scrolling/ScrollState.cpp |
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollState.cpp b/third_party/WebKit/Source/core/page/scrolling/ScrollState.cpp |
index b462fd9bc49e1df3980ad7317b57ef0f8d82cf44..bdba1458c53456dca8ba25d0065318bbb152ade8 100644 |
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollState.cpp |
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollState.cpp |
@@ -24,37 +24,44 @@ Element* elementForId(int elementId) |
} |
} // namespace |
-PassRefPtrWillBeRawPtr<ScrollState> ScrollState::create( |
- double deltaX, double deltaY, double deltaGranularity, double velocityX, |
- double velocityY, bool inInertialPhase, |
- bool isBeginning, bool isEnding, |
- bool fromUserInput, bool shouldPropagate, |
- bool deltaConsumedForScrollSequence) |
+PassRefPtrWillBeRawPtr<ScrollState> ScrollState::create(ScrollStateInit init) |
{ |
- OwnPtr<WebScrollStateData> data(adoptPtr(new WebScrollStateData(deltaX, deltaY, deltaGranularity, velocityX, velocityY, |
- inInertialPhase, isBeginning, isEnding, fromUserInput, shouldPropagate, |
- deltaConsumedForScrollSequence))); |
- return adoptRefWillBeNoop(new ScrollState(data.release())); |
+ OwnPtr<ScrollStateData> scrollStateData = adoptPtr(new ScrollStateData()); |
+ scrollStateData->delta_x = init.deltaX(); |
+ scrollStateData->delta_y = init.deltaY(); |
+ scrollStateData->start_position_x = init.startPositionX(); |
+ scrollStateData->start_position_y = init.startPositionY(); |
+ scrollStateData->velocity_x = init.velocityX(); |
+ scrollStateData->velocity_y = init.velocityY(); |
+ scrollStateData->is_beginning = init.isBeginning(); |
+ scrollStateData->is_in_inertial_phase = init.isInInertialPhase(); |
+ scrollStateData->is_ending = init.isEnding(); |
+ scrollStateData->should_propagate = init.shouldPropagate(); |
+ scrollStateData->from_user_input = init.fromUserInput(); |
+ scrollStateData->is_direct_manipulation = init.isDirectManipulation(); |
+ scrollStateData->delta_granularity = init.deltaGranularity(); |
+ ScrollState* scrollState = new ScrollState(scrollStateData.release()); |
+ return adoptRefWillBeNoop(scrollState); |
} |
-PassRefPtrWillBeRawPtr<ScrollState> ScrollState::create(PassOwnPtr<WebScrollStateData> data) |
+PassRefPtrWillBeRawPtr<ScrollState> ScrollState::create(PassOwnPtr<ScrollStateData> data) |
{ |
ScrollState* scrollState = new ScrollState(data); |
return adoptRefWillBeNoop(scrollState); |
} |
-ScrollState::ScrollState(PassOwnPtr<WebScrollStateData> data) |
+ScrollState::ScrollState(PassOwnPtr<ScrollStateData> data) |
: m_data(data) |
{ |
} |
void ScrollState::consumeDelta(double x, double y, ExceptionState& exceptionState) |
{ |
- if ((m_data->deltaX > 0 && 0 > x) || (m_data->deltaX < 0 && 0 < x) || (m_data->deltaY > 0 && 0 > y) || (m_data->deltaY < 0 && 0 < y)) { |
+ if ((m_data->delta_x > 0 && 0 > x) || (m_data->delta_x < 0 && 0 < x) || (m_data->delta_y > 0 && 0 > y) || (m_data->delta_y < 0 && 0 < y)) { |
exceptionState.throwDOMException(InvalidModificationError, "Can't increase delta using consumeDelta"); |
return; |
} |
- if (fabs(x) > fabs(m_data->deltaX) || fabs(y) > fabs(m_data->deltaY)) { |
+ if (fabs(x) > fabs(m_data->delta_x) || fabs(y) > fabs(m_data->delta_y)) { |
exceptionState.throwDOMException(InvalidModificationError, "Can't change direction of delta using consumeDelta"); |
return; |
} |
@@ -72,33 +79,33 @@ void ScrollState::distributeToScrollChainDescendant() |
void ScrollState::consumeDeltaNative(double x, double y) |
{ |
- m_data->deltaX -= x; |
- m_data->deltaY -= y; |
+ m_data->delta_x -= x; |
+ m_data->delta_y -= y; |
+ if (x) |
+ m_data->caused_scroll_x = true; |
+ if (y) |
+ m_data->caused_scroll_y = true; |
if (x || y) |
- m_data->deltaConsumedForScrollSequence = true; |
+ m_data->delta_consumed_for_scroll_sequence = true; |
} |
Element* ScrollState::currentNativeScrollingElement() const |
{ |
- if (m_data->currentNativeScrollingElement == 0) |
+ uint64_t elementId = m_data->current_native_scrolling_element(); |
+ if (elementId == 0) |
return nullptr; |
- return elementForId(m_data->currentNativeScrollingElement); |
+ return elementForId(elementId); |
} |
void ScrollState::setCurrentNativeScrollingElement(Element* element) |
{ |
- m_data->currentNativeScrollingElement = DOMNodeIds::idForNode(element); |
-} |
- |
-int ScrollState::currentNativeScrollingElementId() const |
-{ |
- return m_data->currentNativeScrollingElement; |
+ m_data->set_current_native_scrolling_element(DOMNodeIds::idForNode(element)); |
} |
void ScrollState::setCurrentNativeScrollingElementById(int elementId) |
{ |
- m_data->currentNativeScrollingElement = elementId; |
+ m_data->set_current_native_scrolling_element(elementId); |
} |
} // namespace blink |