OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
5 * 2000 Dirk Mueller <mueller@kde.org> | 5 * 2000 Dirk Mueller <mueller@kde.org> |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
9 * Copyright (C) 2009 Google Inc. All rights reserved. | 9 * Copyright (C) 2009 Google Inc. All rights reserved. |
10 * | 10 * |
(...skipping 3680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3691 (shouldPlaceVerticalScrollbarOnLeft() && m_verticalScrollbar) | 3691 (shouldPlaceVerticalScrollbarOnLeft() && m_verticalScrollbar) |
3692 ? m_verticalScrollbar->width() | 3692 ? m_verticalScrollbar->width() |
3693 : 0, | 3693 : 0, |
3694 height() - thickness, | 3694 height() - thickness, |
3695 width() - (m_verticalScrollbar ? m_verticalScrollbar->width() : 0), | 3695 width() - (m_verticalScrollbar ? m_verticalScrollbar->width() : 0), |
3696 thickness); | 3696 thickness); |
3697 m_horizontalScrollbar->setFrameRect(hBarRect); | 3697 m_horizontalScrollbar->setFrameRect(hBarRect); |
3698 if (oldRect != m_horizontalScrollbar->frameRect()) | 3698 if (oldRect != m_horizontalScrollbar->frameRect()) |
3699 setScrollbarNeedsPaintInvalidation(HorizontalScrollbar); | 3699 setScrollbarNeedsPaintInvalidation(HorizontalScrollbar); |
3700 | 3700 |
3701 m_horizontalScrollbar->setEnabled(contentsWidth() > clientWidth); | 3701 m_horizontalScrollbar->setEnabled(contentsWidth() > clientWidth && |
| 3702 !scrollbarsHidden()); |
3702 m_horizontalScrollbar->setProportion(clientWidth, contentsWidth()); | 3703 m_horizontalScrollbar->setProportion(clientWidth, contentsWidth()); |
3703 m_horizontalScrollbar->offsetDidChange(); | 3704 m_horizontalScrollbar->offsetDidChange(); |
3704 } | 3705 } |
3705 | 3706 |
3706 if (m_verticalScrollbar) { | 3707 if (m_verticalScrollbar) { |
3707 int thickness = m_verticalScrollbar->scrollbarThickness(); | 3708 int thickness = m_verticalScrollbar->scrollbarThickness(); |
3708 int clientHeight = visibleHeight(); | 3709 int clientHeight = visibleHeight(); |
3709 IntRect oldRect(m_verticalScrollbar->frameRect()); | 3710 IntRect oldRect(m_verticalScrollbar->frameRect()); |
3710 IntRect vBarRect( | 3711 IntRect vBarRect( |
3711 shouldPlaceVerticalScrollbarOnLeft() ? 0 : (width() - thickness), 0, | 3712 shouldPlaceVerticalScrollbarOnLeft() ? 0 : (width() - thickness), 0, |
3712 thickness, | 3713 thickness, |
3713 height() - | 3714 height() - |
3714 (m_horizontalScrollbar ? m_horizontalScrollbar->height() : 0)); | 3715 (m_horizontalScrollbar ? m_horizontalScrollbar->height() : 0)); |
3715 m_verticalScrollbar->setFrameRect(vBarRect); | 3716 m_verticalScrollbar->setFrameRect(vBarRect); |
3716 if (oldRect != m_verticalScrollbar->frameRect()) | 3717 if (oldRect != m_verticalScrollbar->frameRect()) |
3717 setScrollbarNeedsPaintInvalidation(VerticalScrollbar); | 3718 setScrollbarNeedsPaintInvalidation(VerticalScrollbar); |
3718 | 3719 |
3719 m_verticalScrollbar->setEnabled(contentsHeight() > clientHeight); | 3720 m_verticalScrollbar->setEnabled(contentsHeight() > clientHeight && |
| 3721 !scrollbarsHidden()); |
3720 m_verticalScrollbar->setProportion(clientHeight, contentsHeight()); | 3722 m_verticalScrollbar->setProportion(clientHeight, contentsHeight()); |
3721 m_verticalScrollbar->offsetDidChange(); | 3723 m_verticalScrollbar->offsetDidChange(); |
3722 } | 3724 } |
3723 } | 3725 } |
3724 | 3726 |
3725 bool FrameView::adjustScrollbarExistence( | 3727 bool FrameView::adjustScrollbarExistence( |
3726 ComputeScrollbarExistenceOption option) { | 3728 ComputeScrollbarExistenceOption option) { |
3727 ASSERT(m_inUpdateScrollbars); | 3729 ASSERT(m_inUpdateScrollbars); |
3728 | 3730 |
3729 // If we came in here with the view already needing a layout, then go ahead | 3731 // If we came in here with the view already needing a layout, then go ahead |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3777 return m_frame->settings()->ignoreMainFrameOverflowHiddenQuirk() && | 3779 return m_frame->settings()->ignoreMainFrameOverflowHiddenQuirk() && |
3778 m_frame->isMainFrame(); | 3780 m_frame->isMainFrame(); |
3779 } | 3781 } |
3780 | 3782 |
3781 void FrameView::updateScrollbarsIfNeeded() { | 3783 void FrameView::updateScrollbarsIfNeeded() { |
3782 if (m_needsScrollbarsUpdate || needsScrollbarReconstruction() || | 3784 if (m_needsScrollbarsUpdate || needsScrollbarReconstruction() || |
3783 scrollOriginChanged()) | 3785 scrollOriginChanged()) |
3784 updateScrollbars(); | 3786 updateScrollbars(); |
3785 } | 3787 } |
3786 | 3788 |
| 3789 void FrameView::didChangeScrollbarsHidden() { |
| 3790 updateScrollbars(); |
| 3791 } |
| 3792 |
3787 void FrameView::updateScrollbars() { | 3793 void FrameView::updateScrollbars() { |
3788 m_needsScrollbarsUpdate = false; | 3794 m_needsScrollbarsUpdate = false; |
3789 | 3795 |
3790 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) | 3796 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) |
3791 return; | 3797 return; |
3792 | 3798 |
3793 // Avoid drawing two sets of scrollbars when visual viewport is enabled. | 3799 // Avoid drawing two sets of scrollbars when visual viewport is enabled. |
3794 if (visualViewportSuppliesScrollbars()) { | 3800 if (visualViewportSuppliesScrollbars()) { |
3795 setHasHorizontalScrollbar(false); | 3801 setHasHorizontalScrollbar(false); |
3796 setHasVerticalScrollbar(false); | 3802 setHasVerticalScrollbar(false); |
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4507 DCHECK(m_frame->isMainFrame()); | 4513 DCHECK(m_frame->isMainFrame()); |
4508 return m_initialViewportSize.width(); | 4514 return m_initialViewportSize.width(); |
4509 } | 4515 } |
4510 | 4516 |
4511 int FrameView::initialViewportHeight() const { | 4517 int FrameView::initialViewportHeight() const { |
4512 DCHECK(m_frame->isMainFrame()); | 4518 DCHECK(m_frame->isMainFrame()); |
4513 return m_initialViewportSize.height(); | 4519 return m_initialViewportSize.height(); |
4514 } | 4520 } |
4515 | 4521 |
4516 } // namespace blink | 4522 } // namespace blink |
OLD | NEW |