Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Unified Diff: third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp

Issue 1776503002: Account for scroll origin in scroll animators. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: super-nit Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
diff --git a/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp b/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
index 99f58fd7b3390ca1aa25e12abf734218f3a4dfea..437bee38681c0dd871c04818285008f2721062fb 100644
--- a/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
@@ -56,7 +56,7 @@ void ProgrammaticScrollAnimator::animateToOffset(FloatPoint offset)
m_startTime = 0.0;
m_targetOffset = offset;
m_animationCurve = adoptPtr(CompositorFactory::current().createScrollOffsetAnimationCurve(
- m_targetOffset,
+ compositorOffsetFromBlinkOffset(m_targetOffset),
CompositorAnimationCurve::TimingFunctionTypeEaseInOut,
CompositorScrollOffsetAnimationCurve::ScrollDurationDeltaBased));
@@ -83,7 +83,7 @@ void ProgrammaticScrollAnimator::tickAnimation(double monotonicTime)
m_startTime = monotonicTime;
double elapsedTime = monotonicTime - m_startTime;
bool isFinished = (elapsedTime > m_animationCurve->duration());
- FloatPoint offset = m_animationCurve->getValue(elapsedTime);
+ FloatPoint offset = blinkOffsetFromCompositorOffset(m_animationCurve->getValue(elapsedTime));
notifyPositionChanged(IntPoint(offset.x(), offset.y()));
if (isFinished) {
@@ -139,7 +139,8 @@ void ProgrammaticScrollAnimator::updateCompositorAnimations()
if (!sentToCompositor) {
m_runState = RunState::RunningOnMainThread;
- m_animationCurve->setInitialValue(FloatPoint(m_scrollableArea->scrollPosition()));
+ m_animationCurve->setInitialValue(compositorOffsetFromBlinkOffset(
+ FloatPoint(m_scrollableArea->scrollPosition())));
if (!m_scrollableArea->scheduleAnimation()) {
notifyPositionChanged(IntPoint(m_targetOffset.x(), m_targetOffset.y()));
resetAnimationState();
@@ -158,7 +159,8 @@ void ProgrammaticScrollAnimator::layerForCompositedScrollingDidChange(Compositor
m_runState = RunState::RunningOnMainThread;
m_compositorAnimationId = 0;
m_compositorAnimationGroupId = 0;
- m_animationCurve->setInitialValue(FloatPoint(m_scrollableArea->scrollPosition()));
+ m_animationCurve->setInitialValue(compositorOffsetFromBlinkOffset(
+ FloatPoint(m_scrollableArea->scrollPosition())));
m_scrollableArea->registerForAnimation();
if (!m_scrollableArea->scheduleAnimation()) {
resetAnimationState();

Powered by Google App Engine
This is Rietveld 408576698