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

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

Issue 2042923002: Restore PaintLayerScrollableArea::ScrollbarManager::canDetach behavior. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Created 4 years, 6 months 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 reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
5 * 5 *
6 * Other contributors: 6 * Other contributors:
7 * Robert O'Callahan <roc+@cs.cmu.edu> 7 * Robert O'Callahan <roc+@cs.cmu.edu>
8 * David Baron <dbaron@fas.harvard.edu> 8 * David Baron <dbaron@fas.harvard.edu>
9 * Christian Biesinger <cbiesinger@gmail.com> 9 * Christian Biesinger <cbiesinger@gmail.com>
10 * Randall Jesup <rjesup@wgate.com> 10 * Randall Jesup <rjesup@wgate.com>
(...skipping 743 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 } 754 }
755 755
756 DoublePoint clampedScrollPosition = clampScrollPosition(scrollPositionDouble ()); 756 DoublePoint clampedScrollPosition = clampScrollPosition(scrollPositionDouble ());
757 if (clampedScrollPosition != scrollPositionDouble()) 757 if (clampedScrollPosition != scrollPositionDouble())
758 ScrollableArea::setScrollPosition(clampedScrollPosition, ProgrammaticScr oll); 758 ScrollableArea::setScrollPosition(clampedScrollPosition, ProgrammaticScr oll);
759 else if (scrollOriginChanged()) 759 else if (scrollOriginChanged())
760 scrollPositionChanged(clampedScrollPosition, ProgrammaticScroll); 760 scrollPositionChanged(clampedScrollPosition, ProgrammaticScroll);
761 761
762 setNeedsScrollPositionClamp(false); 762 setNeedsScrollPositionClamp(false);
763 resetScrollOriginChanged(); 763 resetScrollOriginChanged();
764 m_scrollbarManager.destroyDetachedScrollbars();
764 } 765 }
765 766
766 ScrollBehavior PaintLayerScrollableArea::scrollBehaviorStyle() const 767 ScrollBehavior PaintLayerScrollableArea::scrollBehaviorStyle() const
767 { 768 {
768 return box().style()->getScrollBehavior(); 769 return box().style()->getScrollBehavior();
769 } 770 }
770 771
771 bool PaintLayerScrollableArea::hasHorizontalOverflow() const 772 bool PaintLayerScrollableArea::hasHorizontalOverflow() const
772 { 773 {
773 return pixelSnappedScrollWidth() > box().pixelSnappedClientWidth(); 774 return pixelSnappedScrollWidth() > box().pixelSnappedClientWidth();
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
1570 if (!m_hBar) { 1571 if (!m_hBar) {
1571 m_hBar = createScrollbar(HorizontalScrollbar); 1572 m_hBar = createScrollbar(HorizontalScrollbar);
1572 m_hBarIsAttached = 1; 1573 m_hBarIsAttached = 1;
1573 if (!m_hBar->isCustomScrollbar()) 1574 if (!m_hBar->isCustomScrollbar())
1574 m_scrollableArea->didAddScrollbar(*m_hBar, HorizontalScrollbar); 1575 m_scrollableArea->didAddScrollbar(*m_hBar, HorizontalScrollbar);
1575 } else { 1576 } else {
1576 m_hBarIsAttached = 1; 1577 m_hBarIsAttached = 1;
1577 } 1578 }
1578 } else { 1579 } else {
1579 m_hBarIsAttached = 0; 1580 m_hBarIsAttached = 0;
1580 destroyScrollbar(HorizontalScrollbar); 1581 if (!DelayScrollPositionClampScope::clampingIsDelayed())
1582 destroyScrollbar(HorizontalScrollbar);
1581 } 1583 }
1582 } 1584 }
1583 1585
1584 void PaintLayerScrollableArea::ScrollbarManager::setHasVerticalScrollbar(bool ha sScrollbar) 1586 void PaintLayerScrollableArea::ScrollbarManager::setHasVerticalScrollbar(bool ha sScrollbar)
1585 { 1587 {
1586 if (hasScrollbar) { 1588 if (hasScrollbar) {
1587 DisableCompositingQueryAsserts disabler; 1589 DisableCompositingQueryAsserts disabler;
1588 if (!m_vBar) { 1590 if (!m_vBar) {
1589 m_vBar = createScrollbar(VerticalScrollbar); 1591 m_vBar = createScrollbar(VerticalScrollbar);
1590 m_vBarIsAttached = 1; 1592 m_vBarIsAttached = 1;
1591 if (!m_vBar->isCustomScrollbar()) 1593 if (!m_vBar->isCustomScrollbar())
1592 m_scrollableArea->didAddScrollbar(*m_vBar, VerticalScrollbar); 1594 m_scrollableArea->didAddScrollbar(*m_vBar, VerticalScrollbar);
1593 } else { 1595 } else {
1594 m_vBarIsAttached = 1; 1596 m_vBarIsAttached = 1;
1595 } 1597 }
1596 } else { 1598 } else {
1597 m_vBarIsAttached = 0; 1599 m_vBarIsAttached = 0;
1598 destroyScrollbar(VerticalScrollbar); 1600 if (!DelayScrollPositionClampScope::clampingIsDelayed())
1601 destroyScrollbar(VerticalScrollbar);
1599 } 1602 }
1600 } 1603 }
1601 1604
1602 Scrollbar* PaintLayerScrollableArea::ScrollbarManager::createScrollbar(Scrollbar Orientation orientation) 1605 Scrollbar* PaintLayerScrollableArea::ScrollbarManager::createScrollbar(Scrollbar Orientation orientation)
1603 { 1606 {
1604 ASSERT(orientation == HorizontalScrollbar ? !m_hBarIsAttached : !m_vBarIsAtt ached); 1607 ASSERT(orientation == HorizontalScrollbar ? !m_hBarIsAttached : !m_vBarIsAtt ached);
1605 Scrollbar* scrollbar = nullptr; 1608 Scrollbar* scrollbar = nullptr;
1606 const LayoutObject& actualLayoutObject = layoutObjectForScrollbar(m_scrollab leArea->box()); 1609 const LayoutObject& actualLayoutObject = layoutObjectForScrollbar(m_scrollab leArea->box());
1607 bool hasCustomScrollbarStyle = actualLayoutObject.isBox() && actualLayoutObj ect.styleRef().hasPseudoStyle(PseudoIdScrollbar); 1610 bool hasCustomScrollbarStyle = actualLayoutObject.isBox() && actualLayoutObj ect.styleRef().hasPseudoStyle(PseudoIdScrollbar);
1608 if (hasCustomScrollbarStyle) { 1611 if (hasCustomScrollbarStyle) {
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1718 1721
1719 void PaintLayerScrollableArea::DelayScrollPositionClampScope::clampScrollableAre as() 1722 void PaintLayerScrollableArea::DelayScrollPositionClampScope::clampScrollableAre as()
1720 { 1723 {
1721 for (auto& scrollableArea : *s_needsClamp) 1724 for (auto& scrollableArea : *s_needsClamp)
1722 scrollableArea->clampScrollPositionsAfterLayout(); 1725 scrollableArea->clampScrollPositionsAfterLayout();
1723 delete s_needsClamp; 1726 delete s_needsClamp;
1724 s_needsClamp = nullptr; 1727 s_needsClamp = nullptr;
1725 } 1728 }
1726 1729
1727 } // namespace blink 1730 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698