Index: WebCore/rendering/RenderLayer.cpp |
=================================================================== |
--- WebCore/rendering/RenderLayer.cpp (revision 67003) |
+++ WebCore/rendering/RenderLayer.cpp (working copy) |
@@ -1363,9 +1363,9 @@ |
if (updateScrollbars) { |
if (m_hBar) |
- m_hBar->setValue(scrollXOffset()); |
+ m_hBar->setValue(scrollXOffset(), Scrollbar::NotFromScrollAnimator); |
if (m_vBar) |
- m_vBar->setValue(m_scrollY); |
+ m_vBar->setValue(m_scrollY, Scrollbar::NotFromScrollAnimator); |
} |
// Schedule the scroll DOM event. |
@@ -1618,6 +1618,20 @@ |
// FIXME (Radar 4118564): We should also autoscroll the window as necessary to keep the point under the cursor in view. |
} |
+int RenderLayer::scrollSize(ScrollbarOrientation orientation) const |
+{ |
+ Scrollbar* scrollbar = ((orientation == HorizontalScrollbar) ? m_hBar : m_vBar).get(); |
+ return scrollbar ? (scrollbar->totalSize() - scrollbar->visibleSize()) : 0; |
+} |
+ |
+void RenderLayer::setScrollOffsetFromAnimation(const IntPoint& offset) |
+{ |
+ if (m_hBar) |
+ m_hBar->setValue(offset.x(), Scrollbar::FromScrollAnimator); |
+ if (m_vBar) |
+ m_vBar->setValue(offset.y(), Scrollbar::FromScrollAnimator); |
+} |
+ |
void RenderLayer::valueChanged(Scrollbar*) |
{ |
// Update scroll position from scrollbars. |
@@ -2068,7 +2082,7 @@ |
// so this is needed to keep everything working (see how scrollXOffset() |
// differs from scrollYOffset() to get an idea of why the horizontal and |
// vertical scrollbars need to be treated differently). |
- m_hBar->setValue(scrollXOffset()); |
+ m_hBar->setValue(scrollXOffset(), Scrollbar::NotFromScrollAnimator); |
} |
if (m_vBar) { |
int clientHeight = box->clientHeight(); |