OLD | NEW |
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 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 } | 599 } |
600 | 600 |
601 bool PaintLayerScrollableArea::userInputScrollable( | 601 bool PaintLayerScrollableArea::userInputScrollable( |
602 ScrollbarOrientation orientation) const { | 602 ScrollbarOrientation orientation) const { |
603 if (box().isIntrinsicallyScrollable(orientation)) | 603 if (box().isIntrinsicallyScrollable(orientation)) |
604 return true; | 604 return true; |
605 | 605 |
606 EOverflow overflowStyle = (orientation == HorizontalScrollbar) | 606 EOverflow overflowStyle = (orientation == HorizontalScrollbar) |
607 ? box().style()->overflowX() | 607 ? box().style()->overflowX() |
608 : box().style()->overflowY(); | 608 : box().style()->overflowY(); |
609 return (overflowStyle == OverflowScroll || overflowStyle == OverflowAuto || | 609 return (overflowStyle == EOverflow::Scroll || |
610 overflowStyle == OverflowOverlay); | 610 overflowStyle == EOverflow::Auto || |
| 611 overflowStyle == EOverflow::Overlay); |
611 } | 612 } |
612 | 613 |
613 bool PaintLayerScrollableArea::shouldPlaceVerticalScrollbarOnLeft() const { | 614 bool PaintLayerScrollableArea::shouldPlaceVerticalScrollbarOnLeft() const { |
614 return box().shouldPlaceBlockDirectionScrollbarOnLogicalLeft(); | 615 return box().shouldPlaceBlockDirectionScrollbarOnLogicalLeft(); |
615 } | 616 } |
616 | 617 |
617 int PaintLayerScrollableArea::pageStep(ScrollbarOrientation orientation) const { | 618 int PaintLayerScrollableArea::pageStep(ScrollbarOrientation orientation) const { |
618 int length = (orientation == HorizontalScrollbar) | 619 int length = (orientation == HorizontalScrollbar) |
619 ? box().pixelSnappedClientWidth() | 620 ? box().pixelSnappedClientWidth() |
620 : box().pixelSnappedClientHeight(); | 621 : box().pixelSnappedClientHeight(); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
727 updateScrollCornerStyle(); | 728 updateScrollCornerStyle(); |
728 | 729 |
729 layer()->updateSelfPaintingLayer(); | 730 layer()->updateSelfPaintingLayer(); |
730 | 731 |
731 // Force an update since we know the scrollbars have changed things. | 732 // Force an update since we know the scrollbars have changed things. |
732 if (box().document().hasAnnotatedRegions()) | 733 if (box().document().hasAnnotatedRegions()) |
733 box().document().setAnnotatedRegionsDirty(true); | 734 box().document().setAnnotatedRegionsDirty(true); |
734 | 735 |
735 // Our proprietary overflow: overlay value doesn't trigger a layout. | 736 // Our proprietary overflow: overlay value doesn't trigger a layout. |
736 if ((horizontalScrollbarShouldChange && | 737 if ((horizontalScrollbarShouldChange && |
737 box().style()->overflowX() != OverflowOverlay) || | 738 box().style()->overflowX() != EOverflow::Overlay) || |
738 (verticalScrollbarShouldChange && | 739 (verticalScrollbarShouldChange && |
739 box().style()->overflowY() != OverflowOverlay)) { | 740 box().style()->overflowY() != EOverflow::Overlay)) { |
740 if ((verticalScrollbarShouldChange && box().isHorizontalWritingMode()) || | 741 if ((verticalScrollbarShouldChange && box().isHorizontalWritingMode()) || |
741 (horizontalScrollbarShouldChange && | 742 (horizontalScrollbarShouldChange && |
742 !box().isHorizontalWritingMode())) { | 743 !box().isHorizontalWritingMode())) { |
743 box().setPreferredLogicalWidthsDirty(); | 744 box().setPreferredLogicalWidthsDirty(); |
744 } | 745 } |
745 if (relayoutIsPrevented) { | 746 if (relayoutIsPrevented) { |
746 // We're not doing re-layout right now, but we still want to | 747 // We're not doing re-layout right now, but we still want to |
747 // add the scrollbar to the logical width now, to facilitate parent | 748 // add the scrollbar to the logical width now, to facilitate parent |
748 // layout. | 749 // layout. |
749 box().updateLogicalWidth(); | 750 box().updateLogicalWidth(); |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
948 if (box().isLayoutBlock() && | 949 if (box().isLayoutBlock() && |
949 (horizontalScrollbarChanged || verticalScrollbarChanged)) { | 950 (horizontalScrollbarChanged || verticalScrollbarChanged)) { |
950 toLayoutBlock(box()).scrollbarsChanged( | 951 toLayoutBlock(box()).scrollbarsChanged( |
951 horizontalScrollbarChanged, verticalScrollbarChanged, | 952 horizontalScrollbarChanged, verticalScrollbarChanged, |
952 LayoutBlock::ScrollbarChangeContext::StyleChange); | 953 LayoutBlock::ScrollbarChangeContext::StyleChange); |
953 } | 954 } |
954 | 955 |
955 // With overflow: scroll, scrollbars are always visible but may be disabled. | 956 // With overflow: scroll, scrollbars are always visible but may be disabled. |
956 // When switching to another value, we need to re-enable them (see bug 11985). | 957 // When switching to another value, we need to re-enable them (see bug 11985). |
957 if (hasHorizontalScrollbar() && oldStyle && | 958 if (hasHorizontalScrollbar() && oldStyle && |
958 oldStyle->overflowX() == OverflowScroll && | 959 oldStyle->overflowX() == EOverflow::Scroll && |
959 box().style()->overflowX() != OverflowScroll) { | 960 box().style()->overflowX() != EOverflow::Scroll) { |
960 horizontalScrollbar()->setEnabled(true); | 961 horizontalScrollbar()->setEnabled(true); |
961 } | 962 } |
962 | 963 |
963 if (hasVerticalScrollbar() && oldStyle && | 964 if (hasVerticalScrollbar() && oldStyle && |
964 oldStyle->overflowY() == OverflowScroll && | 965 oldStyle->overflowY() == EOverflow::Scroll && |
965 box().style()->overflowY() != OverflowScroll) { | 966 box().style()->overflowY() != EOverflow::Scroll) { |
966 verticalScrollbar()->setEnabled(true); | 967 verticalScrollbar()->setEnabled(true); |
967 } | 968 } |
968 | 969 |
969 // FIXME: Need to detect a swap from custom to native scrollbars (and vice | 970 // FIXME: Need to detect a swap from custom to native scrollbars (and vice |
970 // versa). | 971 // versa). |
971 if (horizontalScrollbar()) | 972 if (horizontalScrollbar()) |
972 horizontalScrollbar()->styleChanged(); | 973 horizontalScrollbar()->styleChanged(); |
973 if (verticalScrollbar()) | 974 if (verticalScrollbar()) |
974 verticalScrollbar()->styleChanged(); | 975 verticalScrollbar()->styleChanged(); |
975 | 976 |
(...skipping 1057 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2033 | 2034 |
2034 void PaintLayerScrollableArea::DelayScrollOffsetClampScope:: | 2035 void PaintLayerScrollableArea::DelayScrollOffsetClampScope:: |
2035 clampScrollableAreas() { | 2036 clampScrollableAreas() { |
2036 for (auto& scrollableArea : *s_needsClamp) | 2037 for (auto& scrollableArea : *s_needsClamp) |
2037 scrollableArea->clampScrollOffsetAfterOverflowChange(); | 2038 scrollableArea->clampScrollOffsetAfterOverflowChange(); |
2038 delete s_needsClamp; | 2039 delete s_needsClamp; |
2039 s_needsClamp = nullptr; | 2040 s_needsClamp = nullptr; |
2040 } | 2041 } |
2041 | 2042 |
2042 } // namespace blink | 2043 } // namespace blink |
OLD | NEW |