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

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: 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 3680 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698