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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp

Issue 2509843004: Disable overlay scrollbars to hide them on non-Mac. (Closed)
Patch Set: Renamed to shouldDisableInvisibleScrollbars 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) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
3 * reserved. 3 * reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@gmail.com> 10 * Christian Biesinger <cbiesinger@gmail.com>
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 } 546 }
547 547
548 bool PaintLayerScrollableArea::shouldSuspendScrollAnimations() const { 548 bool PaintLayerScrollableArea::shouldSuspendScrollAnimations() const {
549 LayoutView* view = box().view(); 549 LayoutView* view = box().view();
550 if (!view) 550 if (!view)
551 return true; 551 return true;
552 return view->frameView()->shouldSuspendScrollAnimations(); 552 return view->frameView()->shouldSuspendScrollAnimations();
553 } 553 }
554 554
555 void PaintLayerScrollableArea::scrollbarVisibilityChanged() { 555 void PaintLayerScrollableArea::scrollbarVisibilityChanged() {
556 updateScrollbarEnabledState();
557
556 if (LayoutView* view = box().view()) 558 if (LayoutView* view = box().view())
557 return view->clearHitTestCache(); 559 return view->clearHitTestCache();
558 } 560 }
559 561
560 bool PaintLayerScrollableArea::scrollbarsCanBeActive() const { 562 bool PaintLayerScrollableArea::scrollbarsCanBeActive() const {
561 LayoutView* view = box().view(); 563 LayoutView* view = box().view();
562 if (!view) 564 if (!view)
563 return false; 565 return false;
564 return view->frameView()->scrollbarsCanBeActive(); 566 return view->frameView()->scrollbarsCanBeActive();
565 } 567 }
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 } 651 }
650 652
651 void PaintLayerScrollableArea::updateScrollDimensions() { 653 void PaintLayerScrollableArea::updateScrollDimensions() {
652 if (m_overflowRect.size() != box().layoutOverflowRect().size()) 654 if (m_overflowRect.size() != box().layoutOverflowRect().size())
653 contentsResized(); 655 contentsResized();
654 m_overflowRect = box().layoutOverflowRect(); 656 m_overflowRect = box().layoutOverflowRect();
655 box().flipForWritingMode(m_overflowRect); 657 box().flipForWritingMode(m_overflowRect);
656 updateScrollOrigin(); 658 updateScrollOrigin();
657 } 659 }
658 660
661 void PaintLayerScrollableArea::updateScrollbarEnabledState() {
662 bool forceDisabled =
663 ScrollbarTheme::theme().shouldDisableInvisibleScrollbars() &&
664 scrollbarsHidden();
665 // overflow:scroll should just enable/disable.
666 if (box().style()->overflowX() == OverflowScroll && horizontalScrollbar()) {
667 horizontalScrollbar()->setEnabled(hasHorizontalOverflow() &&
668 !forceDisabled);
669 }
670 if (box().style()->overflowY() == OverflowScroll && verticalScrollbar()) {
671 verticalScrollbar()->setEnabled(hasVerticalOverflow() && !forceDisabled);
672 }
673 }
674
659 void PaintLayerScrollableArea::setScrollOffsetUnconditionally( 675 void PaintLayerScrollableArea::setScrollOffsetUnconditionally(
660 const ScrollOffset& offset, 676 const ScrollOffset& offset,
661 ScrollType scrollType) { 677 ScrollType scrollType) {
662 cancelScrollAnimation(); 678 cancelScrollAnimation();
663 scrollOffsetChanged(offset, scrollType); 679 scrollOffsetChanged(offset, scrollType);
664 } 680 }
665 681
666 void PaintLayerScrollableArea::updateAfterLayout() { 682 void PaintLayerScrollableArea::updateAfterLayout() {
667 DCHECK(box().hasOverflowClip()); 683 DCHECK(box().hasOverflowClip());
668 684
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 if (parent && parent->isFlexibleBox()) 758 if (parent && parent->isFlexibleBox())
743 toLayoutFlexibleBox(parent)->clearCachedMainSizeForChild(box()); 759 toLayoutFlexibleBox(parent)->clearCachedMainSizeForChild(box());
744 } 760 }
745 } 761 }
746 762
747 { 763 {
748 // Hits in 764 // Hits in
749 // compositing/overflow/automatically-opt-into-composited-scrolling-after-st yle-change.html. 765 // compositing/overflow/automatically-opt-into-composited-scrolling-after-st yle-change.html.
750 DisableCompositingQueryAsserts disabler; 766 DisableCompositingQueryAsserts disabler;
751 767
752 // overflow:scroll should just enable/disable. 768 updateScrollbarEnabledState();
753 if (box().style()->overflowX() == OverflowScroll && horizontalScrollbar())
754 horizontalScrollbar()->setEnabled(hasHorizontalOverflow());
755 if (box().style()->overflowY() == OverflowScroll && verticalScrollbar())
756 verticalScrollbar()->setEnabled(hasVerticalOverflow());
757 769
758 // Set up the range (and page step/line step). 770 // Set up the range (and page step/line step).
759 if (Scrollbar* horizontalScrollbar = this->horizontalScrollbar()) { 771 if (Scrollbar* horizontalScrollbar = this->horizontalScrollbar()) {
760 int clientWidth = box().pixelSnappedClientWidth(); 772 int clientWidth = box().pixelSnappedClientWidth();
761 horizontalScrollbar->setProportion(clientWidth, 773 horizontalScrollbar->setProportion(clientWidth,
762 overflowRect().width().toInt()); 774 overflowRect().width().toInt());
763 } 775 }
764 if (Scrollbar* verticalScrollbar = this->verticalScrollbar()) { 776 if (Scrollbar* verticalScrollbar = this->verticalScrollbar()) {
765 int clientHeight = box().pixelSnappedClientHeight(); 777 int clientHeight = box().pixelSnappedClientHeight();
766 verticalScrollbar->setProportion(clientHeight, 778 verticalScrollbar->setProportion(clientHeight,
(...skipping 1226 matching lines...) Expand 10 before | Expand all | Expand 10 after
1993 2005
1994 void PaintLayerScrollableArea::DelayScrollOffsetClampScope:: 2006 void PaintLayerScrollableArea::DelayScrollOffsetClampScope::
1995 clampScrollableAreas() { 2007 clampScrollableAreas() {
1996 for (auto& scrollableArea : *s_needsClamp) 2008 for (auto& scrollableArea : *s_needsClamp)
1997 scrollableArea->clampScrollOffsetsAfterLayout(); 2009 scrollableArea->clampScrollOffsetsAfterLayout();
1998 delete s_needsClamp; 2010 delete s_needsClamp;
1999 s_needsClamp = nullptr; 2011 s_needsClamp = nullptr;
2000 } 2012 }
2001 2013
2002 } // namespace blink 2014 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h ('k') | third_party/WebKit/Source/core/testing/Internals.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698