| 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();
|
|
|