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

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: Fix tests 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 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 } 544 }
545 545
546 bool PaintLayerScrollableArea::shouldSuspendScrollAnimations() const { 546 bool PaintLayerScrollableArea::shouldSuspendScrollAnimations() const {
547 LayoutView* view = box().view(); 547 LayoutView* view = box().view();
548 if (!view) 548 if (!view)
549 return true; 549 return true;
550 return view->frameView()->shouldSuspendScrollAnimations(); 550 return view->frameView()->shouldSuspendScrollAnimations();
551 } 551 }
552 552
553 void PaintLayerScrollableArea::scrollbarVisibilityChanged() { 553 void PaintLayerScrollableArea::scrollbarVisibilityChanged() {
554 updateScrollbarEnabledState();
555
554 if (LayoutView* view = box().view()) 556 if (LayoutView* view = box().view())
555 return view->clearHitTestCache(); 557 return view->clearHitTestCache();
556 } 558 }
557 559
558 bool PaintLayerScrollableArea::scrollbarsCanBeActive() const { 560 bool PaintLayerScrollableArea::scrollbarsCanBeActive() const {
559 LayoutView* view = box().view(); 561 LayoutView* view = box().view();
560 if (!view) 562 if (!view)
561 return false; 563 return false;
562 return view->frameView()->scrollbarsCanBeActive(); 564 return view->frameView()->scrollbarsCanBeActive();
563 } 565 }
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 } 649 }
648 650
649 void PaintLayerScrollableArea::updateScrollDimensions() { 651 void PaintLayerScrollableArea::updateScrollDimensions() {
650 if (m_overflowRect.size() != box().layoutOverflowRect().size()) 652 if (m_overflowRect.size() != box().layoutOverflowRect().size())
651 contentsResized(); 653 contentsResized();
652 m_overflowRect = box().layoutOverflowRect(); 654 m_overflowRect = box().layoutOverflowRect();
653 box().flipForWritingMode(m_overflowRect); 655 box().flipForWritingMode(m_overflowRect);
654 updateScrollOrigin(); 656 updateScrollOrigin();
655 } 657 }
656 658
659 void PaintLayerScrollableArea::updateScrollbarEnabledState() {
660 bool forceDisabled = ScrollbarTheme::theme().disableInvisibleScrollbars() &&
661 scrollbarsHidden();
662 // overflow:scroll should just enable/disable.
663 if (box().style()->overflowX() == OverflowScroll && horizontalScrollbar()) {
664 horizontalScrollbar()->setEnabled(hasHorizontalOverflow() &&
665 !forceDisabled);
666 }
667 if (box().style()->overflowY() == OverflowScroll && verticalScrollbar()) {
668 verticalScrollbar()->setEnabled(hasVerticalOverflow() && !forceDisabled);
669 }
670 }
671
657 void PaintLayerScrollableArea::setScrollOffsetUnconditionally( 672 void PaintLayerScrollableArea::setScrollOffsetUnconditionally(
658 const ScrollOffset& offset, 673 const ScrollOffset& offset,
659 ScrollType scrollType) { 674 ScrollType scrollType) {
660 cancelScrollAnimation(); 675 cancelScrollAnimation();
661 scrollOffsetChanged(offset, scrollType); 676 scrollOffsetChanged(offset, scrollType);
662 } 677 }
663 678
664 void PaintLayerScrollableArea::updateAfterLayout() { 679 void PaintLayerScrollableArea::updateAfterLayout() {
665 DCHECK(box().hasOverflowClip()); 680 DCHECK(box().hasOverflowClip());
666 681
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 if (parent && parent->isFlexibleBox()) 755 if (parent && parent->isFlexibleBox())
741 toLayoutFlexibleBox(parent)->clearCachedMainSizeForChild(box()); 756 toLayoutFlexibleBox(parent)->clearCachedMainSizeForChild(box());
742 } 757 }
743 } 758 }
744 759
745 { 760 {
746 // Hits in 761 // Hits in
747 // compositing/overflow/automatically-opt-into-composited-scrolling-after-st yle-change.html. 762 // compositing/overflow/automatically-opt-into-composited-scrolling-after-st yle-change.html.
748 DisableCompositingQueryAsserts disabler; 763 DisableCompositingQueryAsserts disabler;
749 764
750 // overflow:scroll should just enable/disable. 765 updateScrollbarEnabledState();
751 if (box().style()->overflowX() == OverflowScroll && horizontalScrollbar())
752 horizontalScrollbar()->setEnabled(hasHorizontalOverflow());
753 if (box().style()->overflowY() == OverflowScroll && verticalScrollbar())
754 verticalScrollbar()->setEnabled(hasVerticalOverflow());
755 766
756 // Set up the range (and page step/line step). 767 // Set up the range (and page step/line step).
757 if (Scrollbar* horizontalScrollbar = this->horizontalScrollbar()) { 768 if (Scrollbar* horizontalScrollbar = this->horizontalScrollbar()) {
758 int clientWidth = box().pixelSnappedClientWidth(); 769 int clientWidth = box().pixelSnappedClientWidth();
759 horizontalScrollbar->setProportion(clientWidth, 770 horizontalScrollbar->setProportion(clientWidth,
760 overflowRect().width().toInt()); 771 overflowRect().width().toInt());
761 } 772 }
762 if (Scrollbar* verticalScrollbar = this->verticalScrollbar()) { 773 if (Scrollbar* verticalScrollbar = this->verticalScrollbar()) {
763 int clientHeight = box().pixelSnappedClientHeight(); 774 int clientHeight = box().pixelSnappedClientHeight();
764 verticalScrollbar->setProportion(clientHeight, 775 verticalScrollbar->setProportion(clientHeight,
(...skipping 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1967 1978
1968 void PaintLayerScrollableArea::DelayScrollOffsetClampScope:: 1979 void PaintLayerScrollableArea::DelayScrollOffsetClampScope::
1969 clampScrollableAreas() { 1980 clampScrollableAreas() {
1970 for (auto& scrollableArea : *s_needsClamp) 1981 for (auto& scrollableArea : *s_needsClamp)
1971 scrollableArea->clampScrollOffsetsAfterLayout(); 1982 scrollableArea->clampScrollOffsetsAfterLayout();
1972 delete s_needsClamp; 1983 delete s_needsClamp;
1973 s_needsClamp = nullptr; 1984 s_needsClamp = nullptr;
1974 } 1985 }
1975 1986
1976 } // namespace blink 1987 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698