| Index: third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
|
| diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp b/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
|
| index 7e37425c6e8419afcc0c608d11559e40d7bdb1f9..c3a8ee7654bd0bca004dc39b7b379819346a1622 100644
|
| --- a/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
|
| +++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
|
| @@ -190,18 +190,19 @@
|
| void ScrollAnimator::adjustAnimationAndSetScrollPosition(
|
| const DoublePoint& position,
|
| ScrollType scrollType) {
|
| - IntSize adjustment =
|
| - roundedIntPoint(position) -
|
| + DoublePoint adjustedPos = m_scrollableArea->clampScrollPosition(position);
|
| + IntSize actualAdjustment =
|
| + roundedIntPoint(adjustedPos) -
|
| roundedIntPoint(m_scrollableArea->scrollPositionDouble());
|
|
|
| - scrollPositionChanged(position, scrollType);
|
| + scrollPositionChanged(adjustedPos, scrollType);
|
|
|
| if (m_runState == RunState::Idle) {
|
| - adjustImplOnlyScrollOffsetAnimation(adjustment);
|
| + adjustImplOnlyScrollOffsetAnimation(actualAdjustment);
|
| } else if (hasRunningAnimation()) {
|
| - m_targetOffset += toFloatSize(adjustment);
|
| + m_targetOffset += toFloatSize(actualAdjustment);
|
| if (m_animationCurve) {
|
| - m_animationCurve->applyAdjustment(adjustment);
|
| + m_animationCurve->applyAdjustment(actualAdjustment);
|
| if (m_runState != RunState::RunningOnMainThread &&
|
| registerAndScheduleAnimation())
|
| m_runState = RunState::RunningOnCompositorButNeedsAdjustment;
|
|
|