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

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 2453553003: Disable overlay scrollbars in Blink when hidden by the compositor. (Closed)
Patch Set: Rebase Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
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 3718 matching lines...) Expand 10 before | Expand all | Expand 10 after
3729 (shouldPlaceVerticalScrollbarOnLeft() && verticalScrollbar()) 3729 (shouldPlaceVerticalScrollbarOnLeft() && verticalScrollbar())
3730 ? verticalScrollbar()->width() 3730 ? verticalScrollbar()->width()
3731 : 0, 3731 : 0,
3732 height() - thickness, 3732 height() - thickness,
3733 width() - (verticalScrollbar() ? verticalScrollbar()->width() : 0), 3733 width() - (verticalScrollbar() ? verticalScrollbar()->width() : 0),
3734 thickness); 3734 thickness);
3735 horizontalScrollbar()->setFrameRect(hBarRect); 3735 horizontalScrollbar()->setFrameRect(hBarRect);
3736 if (oldRect != horizontalScrollbar()->frameRect()) 3736 if (oldRect != horizontalScrollbar()->frameRect())
3737 setScrollbarNeedsPaintInvalidation(HorizontalScrollbar); 3737 setScrollbarNeedsPaintInvalidation(HorizontalScrollbar);
3738 3738
3739 horizontalScrollbar()->setEnabled(contentsWidth() > clientWidth); 3739 horizontalScrollbar()->setEnabled(contentsWidth() > clientWidth &&
3740 !scrollbarsHidden());
3740 horizontalScrollbar()->setProportion(clientWidth, contentsWidth()); 3741 horizontalScrollbar()->setProportion(clientWidth, contentsWidth());
3741 horizontalScrollbar()->offsetDidChange(); 3742 horizontalScrollbar()->offsetDidChange();
3742 } 3743 }
3743 3744
3744 if (verticalScrollbar()) { 3745 if (verticalScrollbar()) {
3745 int thickness = verticalScrollbar()->scrollbarThickness(); 3746 int thickness = verticalScrollbar()->scrollbarThickness();
3746 int clientHeight = visibleHeight(); 3747 int clientHeight = visibleHeight();
3747 IntRect oldRect(verticalScrollbar()->frameRect()); 3748 IntRect oldRect(verticalScrollbar()->frameRect());
3748 IntRect vBarRect( 3749 IntRect vBarRect(
3749 shouldPlaceVerticalScrollbarOnLeft() ? 0 : (width() - thickness), 0, 3750 shouldPlaceVerticalScrollbarOnLeft() ? 0 : (width() - thickness), 0,
3750 thickness, 3751 thickness,
3751 height() - 3752 height() -
3752 (horizontalScrollbar() ? horizontalScrollbar()->height() : 0)); 3753 (horizontalScrollbar() ? horizontalScrollbar()->height() : 0));
3753 verticalScrollbar()->setFrameRect(vBarRect); 3754 verticalScrollbar()->setFrameRect(vBarRect);
3754 if (oldRect != verticalScrollbar()->frameRect()) 3755 if (oldRect != verticalScrollbar()->frameRect())
3755 setScrollbarNeedsPaintInvalidation(VerticalScrollbar); 3756 setScrollbarNeedsPaintInvalidation(VerticalScrollbar);
3756 3757
3757 verticalScrollbar()->setEnabled(contentsHeight() > clientHeight); 3758 verticalScrollbar()->setEnabled(contentsHeight() > clientHeight &&
3759 !scrollbarsHidden());
3758 verticalScrollbar()->setProportion(clientHeight, contentsHeight()); 3760 verticalScrollbar()->setProportion(clientHeight, contentsHeight());
3759 verticalScrollbar()->offsetDidChange(); 3761 verticalScrollbar()->offsetDidChange();
3760 } 3762 }
3761 } 3763 }
3762 3764
3763 bool FrameView::adjustScrollbarExistence( 3765 bool FrameView::adjustScrollbarExistence(
3764 ComputeScrollbarExistenceOption option) { 3766 ComputeScrollbarExistenceOption option) {
3765 ASSERT(m_inUpdateScrollbars); 3767 ASSERT(m_inUpdateScrollbars);
3766 3768
3767 // If we came in here with the view already needing a layout, then go ahead 3769 // 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
3815 return m_frame->settings()->ignoreMainFrameOverflowHiddenQuirk() && 3817 return m_frame->settings()->ignoreMainFrameOverflowHiddenQuirk() &&
3816 m_frame->isMainFrame(); 3818 m_frame->isMainFrame();
3817 } 3819 }
3818 3820
3819 void FrameView::updateScrollbarsIfNeeded() { 3821 void FrameView::updateScrollbarsIfNeeded() {
3820 if (m_needsScrollbarsUpdate || needsScrollbarReconstruction() || 3822 if (m_needsScrollbarsUpdate || needsScrollbarReconstruction() ||
3821 scrollOriginChanged()) 3823 scrollOriginChanged())
3822 updateScrollbars(); 3824 updateScrollbars();
3823 } 3825 }
3824 3826
3827 void FrameView::didChangeScrollbarsHidden() {
3828 updateScrollbars();
3829 }
3830
3825 void FrameView::updateScrollbars() { 3831 void FrameView::updateScrollbars() {
3826 m_needsScrollbarsUpdate = false; 3832 m_needsScrollbarsUpdate = false;
3827 3833
3828 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) 3834 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled())
3829 return; 3835 return;
3830 3836
3831 // Avoid drawing two sets of scrollbars when visual viewport is enabled. 3837 // Avoid drawing two sets of scrollbars when visual viewport is enabled.
3832 if (visualViewportSuppliesScrollbars()) { 3838 if (visualViewportSuppliesScrollbars()) {
3833 m_scrollbarManager.setHasHorizontalScrollbar(false); 3839 m_scrollbarManager.setHasHorizontalScrollbar(false);
3834 m_scrollbarManager.setHasVerticalScrollbar(false); 3840 m_scrollbarManager.setHasVerticalScrollbar(false);
(...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after
4540 DCHECK(m_frame->isMainFrame()); 4546 DCHECK(m_frame->isMainFrame());
4541 return m_initialViewportSize.width(); 4547 return m_initialViewportSize.width();
4542 } 4548 }
4543 4549
4544 int FrameView::initialViewportHeight() const { 4550 int FrameView::initialViewportHeight() const {
4545 DCHECK(m_frame->isMainFrame()); 4551 DCHECK(m_frame->isMainFrame());
4546 return m_initialViewportSize.height(); 4552 return m_initialViewportSize.height();
4547 } 4553 }
4548 4554
4549 } // namespace blink 4555 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/FrameView.h ('k') | third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698