OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/paint/PaintInvalidationCapableScrollableArea.h" | 5 #include "core/paint/PaintInvalidationCapableScrollableArea.h" |
6 | 6 |
7 #include "core/frame/Settings.h" | 7 #include "core/frame/Settings.h" |
8 #include "core/html/HTMLFrameOwnerElement.h" | 8 #include "core/html/HTMLFrameOwnerElement.h" |
9 #include "core/layout/LayoutBox.h" | 9 #include "core/layout/LayoutBox.h" |
10 #include "core/layout/LayoutScrollbar.h" | 10 #include "core/layout/LayoutScrollbar.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
75 // not width) but won't invalidate more than expected because in the false-p ositive case the box must | 75 // not width) but won't invalidate more than expected because in the false-p ositive case the box must |
76 // have changed size and have been invalidated. | 76 // have changed size and have been invalidated. |
77 const LayoutBoxModelObject& paintInvalidationContainer = paintInvalidationSt ate.paintInvalidationContainer(); | 77 const LayoutBoxModelObject& paintInvalidationContainer = paintInvalidationSt ate.paintInvalidationContainer(); |
78 LayoutSize newScrollbarUsedSpaceInBox; | 78 LayoutSize newScrollbarUsedSpaceInBox; |
79 if (!isOverlay) | 79 if (!isOverlay) |
80 newScrollbarUsedSpaceInBox = newPaintInvalidationRect.size(); | 80 newScrollbarUsedSpaceInBox = newPaintInvalidationRect.size(); |
81 LayoutSize previousScrollbarUsedSpaceInBox; | 81 LayoutSize previousScrollbarUsedSpaceInBox; |
82 if (!previouslyWasOverlay) | 82 if (!previouslyWasOverlay) |
83 previousScrollbarUsedSpaceInBox= previousPaintInvalidationRect.size(); | 83 previousScrollbarUsedSpaceInBox= previousPaintInvalidationRect.size(); |
84 if (newScrollbarUsedSpaceInBox != previousScrollbarUsedSpaceInBox) | 84 if (newScrollbarUsedSpaceInBox != previousScrollbarUsedSpaceInBox) |
85 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(box, Pai ntInvalidationScroll); | 85 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(box, Pai ntInvalidationScroll, &box); |
86 | 86 |
87 bool invalidated = invalidatePaintOfScrollControlIfNeeded(newPaintInvalidati onRect, previousPaintInvalidationRect, needsPaintInvalidation, box, paintInvalid ationContainer); | 87 bool invalidated = invalidatePaintOfScrollControlIfNeeded(newPaintInvalidati onRect, previousPaintInvalidationRect, needsPaintInvalidation, box, paintInvalid ationContainer); |
88 | 88 |
89 previousPaintInvalidationRect = newPaintInvalidationRect; | 89 previousPaintInvalidationRect = newPaintInvalidationRect; |
90 previouslyWasOverlay = isOverlay; | 90 previouslyWasOverlay = isOverlay; |
91 | 91 |
92 if (!invalidated || !scrollbar || graphicsLayer) | 92 if (!invalidated || !scrollbar || graphicsLayer) |
93 return; | 93 return; |
94 | 94 |
95 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*scrollbar, PaintInvalidationScroll); | 95 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*scrollbar, PaintInvalidationScroll); |
Xianzhu
2016/05/31 18:27:04
We should invalidate the scrollbar on container la
chrishtr
2016/05/31 18:35:29
But it has no effect except debugging no? Is this
Xianzhu
2016/05/31 18:43:46
Oh I forgot my short-cut change and thought we wer
| |
96 if (scrollbar->isCustomScrollbar()) | 96 if (scrollbar->isCustomScrollbar()) |
97 toLayoutScrollbar(scrollbar)->invalidateDisplayItemClientsOfScrollbarPar ts(paintInvalidationContainer); | 97 toLayoutScrollbar(scrollbar)->invalidateDisplayItemClientsOfScrollbarPar ts(paintInvalidationContainer); |
98 } | 98 } |
99 | 99 |
100 void PaintInvalidationCapableScrollableArea::invalidatePaintOfScrollControlsIfNe eded(const PaintInvalidationState& paintInvalidationState) | 100 void PaintInvalidationCapableScrollableArea::invalidatePaintOfScrollControlsIfNe eded(const PaintInvalidationState& paintInvalidationState) |
101 { | 101 { |
102 LayoutBox& box = boxForScrollControlPaintInvalidation(); | 102 LayoutBox& box = boxForScrollControlPaintInvalidation(); |
103 invalidatePaintOfScrollbarIfNeeded(horizontalScrollbar(), layerForHorizontal Scrollbar(), m_horizontalScrollbarPreviouslyWasOverlay, m_horizontalScrollbarPre viousPaintInvalidationRect, horizontalScrollbarNeedsPaintInvalidation(), box, pa intInvalidationState); | 103 invalidatePaintOfScrollbarIfNeeded(horizontalScrollbar(), layerForHorizontal Scrollbar(), m_horizontalScrollbarPreviouslyWasOverlay, m_horizontalScrollbarPre viousPaintInvalidationRect, horizontalScrollbarNeedsPaintInvalidation(), box, pa intInvalidationState); |
104 invalidatePaintOfScrollbarIfNeeded(verticalScrollbar(), layerForVerticalScro llbar(), m_verticalScrollbarPreviouslyWasOverlay, m_verticalScrollbarPreviousPai ntInvalidationRect, verticalScrollbarNeedsPaintInvalidation(), box, paintInvalid ationState); | 104 invalidatePaintOfScrollbarIfNeeded(verticalScrollbar(), layerForVerticalScro llbar(), m_verticalScrollbarPreviouslyWasOverlay, m_verticalScrollbarPreviousPai ntInvalidationRect, verticalScrollbarNeedsPaintInvalidation(), box, paintInvalid ationState); |
105 | 105 |
(...skipping 19 matching lines...) Expand all Loading... | |
125 | 125 |
126 LayoutRect PaintInvalidationCapableScrollableArea::visualRectForScrollbarParts() const | 126 LayoutRect PaintInvalidationCapableScrollableArea::visualRectForScrollbarParts() const |
127 { | 127 { |
128 LayoutRect fullBounds(m_horizontalScrollbarPreviousPaintInvalidationRect); | 128 LayoutRect fullBounds(m_horizontalScrollbarPreviousPaintInvalidationRect); |
129 fullBounds.unite(m_verticalScrollbarPreviousPaintInvalidationRect); | 129 fullBounds.unite(m_verticalScrollbarPreviousPaintInvalidationRect); |
130 fullBounds.unite(m_scrollCornerAndResizerPreviousPaintInvalidationRect); | 130 fullBounds.unite(m_scrollCornerAndResizerPreviousPaintInvalidationRect); |
131 return fullBounds; | 131 return fullBounds; |
132 } | 132 } |
133 | 133 |
134 } // namespace blink | 134 } // namespace blink |
OLD | NEW |