| Index: Source/core/platform/ScrollView.cpp
|
| diff --git a/Source/core/platform/ScrollView.cpp b/Source/core/platform/ScrollView.cpp
|
| index 616dee26b7c0114a70c59b352c7e7243e20d6697..b0904c0e94ad84c4ff4c02cd4af0907ad4a816aa 100644
|
| --- a/Source/core/platform/ScrollView.cpp
|
| +++ b/Source/core/platform/ScrollView.cpp
|
| @@ -49,7 +49,6 @@ ScrollView::ScrollView()
|
| , m_inUpdateScrollbars(false)
|
| , m_updateScrollbarsPass(0)
|
| , m_drawPanScrollIcon(false)
|
| - , m_useFixedLayout(false)
|
| , m_paintsEntireContents(false)
|
| , m_clipsRepaints(true)
|
| {
|
| @@ -186,63 +185,33 @@ void ScrollView::setClipsRepaints(bool clipsRepaints)
|
| m_clipsRepaints = clipsRepaints;
|
| }
|
|
|
| -IntSize ScrollView::unscaledVisibleContentSize(VisibleContentRectIncludesScrollbars scrollbarInclusion) const
|
| +IntSize ScrollView::unscaledVisibleContentSize(IncludeScrollbarsInRect scrollbarInclusion) const
|
| +{
|
| + return scrollbarInclusion == ExcludeScrollbars ? excludeScrollbars(frameRect().size()) : frameRect().size();
|
| +}
|
| +
|
| +IntSize ScrollView::excludeScrollbars(const IntSize& size) const
|
| {
|
| int verticalScrollbarWidth = 0;
|
| int horizontalScrollbarHeight = 0;
|
|
|
| - if (scrollbarInclusion == ExcludeScrollbars) {
|
| - if (Scrollbar* verticalBar = verticalScrollbar())
|
| - verticalScrollbarWidth = !verticalBar->isOverlayScrollbar() ? verticalBar->width() : 0;
|
| - if (Scrollbar* horizontalBar = horizontalScrollbar())
|
| - horizontalScrollbarHeight = !horizontalBar->isOverlayScrollbar() ? horizontalBar->height() : 0;
|
| - }
|
| + if (Scrollbar* verticalBar = verticalScrollbar())
|
| + verticalScrollbarWidth = !verticalBar->isOverlayScrollbar() ? verticalBar->width() : 0;
|
| + if (Scrollbar* horizontalBar = horizontalScrollbar())
|
| + horizontalScrollbarHeight = !horizontalBar->isOverlayScrollbar() ? horizontalBar->height() : 0;
|
| +
|
| + return IntSize(max(0, size.width() - verticalScrollbarWidth),
|
| + max(0, size.height() - horizontalScrollbarHeight));
|
|
|
| - return IntSize(max(0, width() - verticalScrollbarWidth),
|
| - max(0, height() - horizontalScrollbarHeight));
|
| }
|
|
|
| -IntRect ScrollView::visibleContentRect(VisibleContentRectIncludesScrollbars scollbarInclusion) const
|
| +IntRect ScrollView::visibleContentRect(IncludeScrollbarsInRect scollbarInclusion) const
|
| {
|
| FloatSize visibleContentSize = unscaledVisibleContentSize(scollbarInclusion);
|
| visibleContentSize.scale(1 / visibleContentScaleFactor());
|
| return IntRect(IntPoint(m_scrollOffset), expandedIntSize(visibleContentSize));
|
| }
|
|
|
| -IntSize ScrollView::layoutSize(VisibleContentRectIncludesScrollbars scrollbarInclusion) const
|
| -{
|
| - return m_fixedLayoutSize.isZero() || !m_useFixedLayout ? unscaledVisibleContentSize(scrollbarInclusion) : m_fixedLayoutSize;
|
| -}
|
| -
|
| -IntSize ScrollView::fixedLayoutSize() const
|
| -{
|
| - return m_fixedLayoutSize;
|
| -}
|
| -
|
| -void ScrollView::setFixedLayoutSize(const IntSize& newSize)
|
| -{
|
| - if (fixedLayoutSize() == newSize)
|
| - return;
|
| - m_fixedLayoutSize = newSize;
|
| - updateScrollbars(scrollOffset());
|
| - if (m_useFixedLayout)
|
| - contentsResized();
|
| -}
|
| -
|
| -bool ScrollView::useFixedLayout() const
|
| -{
|
| - return m_useFixedLayout;
|
| -}
|
| -
|
| -void ScrollView::setUseFixedLayout(bool enable)
|
| -{
|
| - if (useFixedLayout() == enable)
|
| - return;
|
| - m_useFixedLayout = enable;
|
| - updateScrollbars(scrollOffset());
|
| - contentsResized();
|
| -}
|
| -
|
| IntSize ScrollView::contentsSize() const
|
| {
|
| return m_contentsSize;
|
| @@ -368,7 +337,7 @@ void ScrollView::updateScrollbars(const IntSize& desiredOffset)
|
| // This layout will not re-enter updateScrollbars and does not count towards our max layout pass total.
|
| if (!m_scrollbarsSuppressed) {
|
| m_inUpdateScrollbars = true;
|
| - visibleContentsResized();
|
| + scrollbarExistenceDidChange();
|
| m_inUpdateScrollbars = false;
|
| }
|
|
|
| @@ -443,12 +412,12 @@ void ScrollView::updateScrollbars(const IntSize& desiredOffset)
|
| if (scrollbarsAreOverlay) {
|
| // Synchronize status of scrollbar layers if necessary.
|
| m_inUpdateScrollbars = true;
|
| - visibleContentsResized();
|
| + scrollbarExistenceDidChange();
|
| m_inUpdateScrollbars = false;
|
| } else if (m_updateScrollbarsPass < cMaxUpdateScrollbarsPass) {
|
| m_updateScrollbarsPass++;
|
| contentsResized();
|
| - visibleContentsResized();
|
| + scrollbarExistenceDidChange();
|
| IntSize newDocSize = contentsSize();
|
| if (newDocSize == docSize) {
|
| // The layout with the new scroll state had no impact on
|
| @@ -739,12 +708,9 @@ void ScrollView::setFrameRect(const IntRect& newRect)
|
|
|
| Widget::setFrameRect(newRect);
|
|
|
| - frameRectsChanged();
|
| -
|
| updateScrollbars(scrollOffset());
|
|
|
| - if (!m_useFixedLayout && oldRect.size() != newRect.size())
|
| - contentsResized();
|
| + frameRectsChanged();
|
| }
|
|
|
| void ScrollView::frameRectsChanged()
|
|
|