| OLD | NEW |
| 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@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
| 10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 80 |
| 81 RenderLayerScrollableArea::RenderLayerScrollableArea(RenderLayer& layer) | 81 RenderLayerScrollableArea::RenderLayerScrollableArea(RenderLayer& layer) |
| 82 : m_layer(layer) | 82 : m_layer(layer) |
| 83 , m_inResizeMode(false) | 83 , m_inResizeMode(false) |
| 84 , m_scrollsOverflow(false) | 84 , m_scrollsOverflow(false) |
| 85 , m_scrollDimensionsDirty(true) | 85 , m_scrollDimensionsDirty(true) |
| 86 , m_inOverflowRelayout(false) | 86 , m_inOverflowRelayout(false) |
| 87 , m_nextTopmostScrollChild(0) | 87 , m_nextTopmostScrollChild(0) |
| 88 , m_topmostScrollChild(0) | 88 , m_topmostScrollChild(0) |
| 89 , m_needsCompositedScrolling(false) | 89 , m_needsCompositedScrolling(false) |
| 90 , m_horizontalScrollbarChanged(false) |
| 91 , m_verticalScrollbarChanged(false) |
| 90 , m_scrollCorner(nullptr) | 92 , m_scrollCorner(nullptr) |
| 91 , m_resizer(nullptr) | 93 , m_resizer(nullptr) |
| 92 { | 94 { |
| 93 ScrollableArea::setConstrainsScrollingToContentEdge(false); | 95 ScrollableArea::setConstrainsScrollingToContentEdge(false); |
| 94 | 96 |
| 95 Node* node = box().node(); | 97 Node* node = box().node(); |
| 96 if (node && node->isElementNode()) { | 98 if (node && node->isElementNode()) { |
| 97 // We save and restore only the scrollOffset as the other scroll values
are recalculated. | 99 // We save and restore only the scrollOffset as the other scroll values
are recalculated. |
| 98 Element* element = toElement(node); | 100 Element* element = toElement(node); |
| 99 m_scrollOffset = element->savedLayerScrollOffset(); | 101 m_scrollOffset = element->savedLayerScrollOffset(); |
| (...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 ASSERT(hasHorizontalScrollbar()); | 748 ASSERT(hasHorizontalScrollbar()); |
| 747 m_hBar->setEnabled(true); | 749 m_hBar->setEnabled(true); |
| 748 } | 750 } |
| 749 | 751 |
| 750 if (needsVerticalScrollbar && oldStyle && oldStyle->overflowY() == OSCROLL &
& overflowY != OSCROLL) { | 752 if (needsVerticalScrollbar && oldStyle && oldStyle->overflowY() == OSCROLL &
& overflowY != OSCROLL) { |
| 751 ASSERT(hasVerticalScrollbar()); | 753 ASSERT(hasVerticalScrollbar()); |
| 752 m_vBar->setEnabled(true); | 754 m_vBar->setEnabled(true); |
| 753 } | 755 } |
| 754 | 756 |
| 755 // FIXME: Need to detect a swap from custom to native scrollbars (and vice v
ersa). | 757 // FIXME: Need to detect a swap from custom to native scrollbars (and vice v
ersa). |
| 756 if (m_hBar) | 758 if (m_hBar) { |
| 759 IntRect oldHrect = m_hBar->frameRect(); |
| 757 m_hBar->styleChanged(); | 760 m_hBar->styleChanged(); |
| 758 if (m_vBar) | 761 if ((oldHrect != m_hBar->frameRect()) && m_hBar->isCustomScrollbar()) |
| 762 m_horizontalScrollbarChanged = true; |
| 763 } |
| 764 if (m_vBar) { |
| 765 IntRect oldVrect = m_vBar->frameRect(); |
| 759 m_vBar->styleChanged(); | 766 m_vBar->styleChanged(); |
| 767 if ((oldVrect != m_vBar->frameRect()) && m_vBar->isCustomScrollbar()) |
| 768 m_verticalScrollbarChanged = true; |
| 769 } |
| 760 | 770 |
| 761 updateScrollCornerStyle(); | 771 updateScrollCornerStyle(); |
| 762 updateResizerAreaSet(); | 772 updateResizerAreaSet(); |
| 763 updateResizerStyle(); | 773 updateResizerStyle(); |
| 764 } | 774 } |
| 765 | 775 |
| 776 bool RenderLayerScrollableArea::didCustomScrollbarRectChanged() |
| 777 { |
| 778 bool scrollbarRectChanged = false; |
| 779 if (m_verticalScrollbarChanged || m_horizontalScrollbarChanged) { |
| 780 scrollbarRectChanged = true; |
| 781 m_verticalScrollbarChanged = false; |
| 782 m_horizontalScrollbarChanged = false; |
| 783 } |
| 784 return scrollbarRectChanged; |
| 785 } |
| 786 |
| 766 bool RenderLayerScrollableArea::updateAfterCompositingChange() | 787 bool RenderLayerScrollableArea::updateAfterCompositingChange() |
| 767 { | 788 { |
| 768 layer()->updateScrollingStateAfterCompositingChange(); | 789 layer()->updateScrollingStateAfterCompositingChange(); |
| 769 const bool layersChanged = m_topmostScrollChild != m_nextTopmostScrollChild; | 790 const bool layersChanged = m_topmostScrollChild != m_nextTopmostScrollChild; |
| 770 m_topmostScrollChild = m_nextTopmostScrollChild; | 791 m_topmostScrollChild = m_nextTopmostScrollChild; |
| 771 m_nextTopmostScrollChild = nullptr; | 792 m_nextTopmostScrollChild = nullptr; |
| 772 return layersChanged; | 793 return layersChanged; |
| 773 } | 794 } |
| 774 | 795 |
| 775 void RenderLayerScrollableArea::updateAfterOverflowRecalc() | 796 void RenderLayerScrollableArea::updateAfterOverflowRecalc() |
| (...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1488 void RenderLayerScrollableArea::setTopmostScrollChild(RenderLayer* scrollChild) | 1509 void RenderLayerScrollableArea::setTopmostScrollChild(RenderLayer* scrollChild) |
| 1489 { | 1510 { |
| 1490 // We only want to track the topmost scroll child for scrollable areas with | 1511 // We only want to track the topmost scroll child for scrollable areas with |
| 1491 // overlay scrollbars. | 1512 // overlay scrollbars. |
| 1492 if (!hasOverlayScrollbars()) | 1513 if (!hasOverlayScrollbars()) |
| 1493 return; | 1514 return; |
| 1494 m_nextTopmostScrollChild = scrollChild; | 1515 m_nextTopmostScrollChild = scrollChild; |
| 1495 } | 1516 } |
| 1496 | 1517 |
| 1497 } // namespace blink | 1518 } // namespace blink |
| OLD | NEW |