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

Unified Diff: Source/core/platform/ScrollAnimator.cpp

Issue 14807003: Unifies ScrollView and RenderLayer to use non-shifted [minPos, maxPos] scroll offset (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 8 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: Source/core/platform/ScrollAnimator.cpp
diff --git a/Source/core/platform/ScrollAnimator.cpp b/Source/core/platform/ScrollAnimator.cpp
index 0faa0c046e939e7aabe1d7bde49656b2a2b0616d..b867fffdd106713c2f21b54383ee874cfdd009ec 100644
--- a/Source/core/platform/ScrollAnimator.cpp
+++ b/Source/core/platform/ScrollAnimator.cpp
@@ -55,7 +55,9 @@ ScrollAnimator::~ScrollAnimator()
bool ScrollAnimator::scroll(ScrollbarOrientation orientation, ScrollGranularity, float step, float multiplier)
{
float* currentPos = (orientation == HorizontalScrollbar) ? &m_currentPosX : &m_currentPosY;
- float newPos = std::max(std::min(*currentPos + (step * multiplier), static_cast<float>(m_scrollableArea->scrollSize(orientation))), 0.0f);
+ float minPos = (orientation == HorizontalScrollbar) ? m_scrollableArea->minimumScrollPosition().x() : m_scrollableArea->minimumScrollPosition().y();
+ float maxPos = (orientation == HorizontalScrollbar) ? m_scrollableArea->maximumScrollPosition().x() : m_scrollableArea->maximumScrollPosition().y();
+ float newPos = std::max(std::min(*currentPos + (step * multiplier), maxPos), minPos);
float delta = *currentPos - newPos;
if (*currentPos == newPos)
return false;

Powered by Google App Engine
This is Rietveld 408576698