OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz> | 2 * Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz> |
3 * Copyright (C) 2006 Apple Inc. All rights reserved. | 3 * Copyright (C) 2006 Apple Inc. All rights reserved. |
4 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 4 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 if (!textLayoutObject) { | 141 if (!textLayoutObject) { |
142 LayoutInline::removeChild(child); | 142 LayoutInline::removeChild(child); |
143 return; | 143 return; |
144 } | 144 } |
145 Vector<SVGTextLayoutAttributes*, 2> affectedAttributes; | 145 Vector<SVGTextLayoutAttributes*, 2> affectedAttributes; |
146 textLayoutObject->subtreeChildWillBeRemoved(child, affectedAttributes); | 146 textLayoutObject->subtreeChildWillBeRemoved(child, affectedAttributes); |
147 LayoutInline::removeChild(child); | 147 LayoutInline::removeChild(child); |
148 textLayoutObject->subtreeChildWasRemoved(affectedAttributes); | 148 textLayoutObject->subtreeChildWasRemoved(affectedAttributes); |
149 } | 149 } |
150 | 150 |
151 void LayoutSVGInline::invalidateTreeIfNeeded(PaintInvalidationState& paintInvali
dationState) | 151 void LayoutSVGInline::invalidateTreeIfNeeded(const PaintInvalidationState& paint
InvalidationState) |
152 { | 152 { |
153 ASSERT(!needsLayout()); | 153 ASSERT(!needsLayout()); |
154 | 154 |
155 if (!shouldCheckForPaintInvalidation(paintInvalidationState)) | 155 if (!shouldCheckForPaintInvalidation(paintInvalidationState)) |
156 return; | 156 return; |
157 | 157 |
158 PaintInvalidationReason reason = invalidatePaintIfNeeded(paintInvalidationSt
ate, paintInvalidationState.paintInvalidationContainer()); | 158 PaintInvalidationState newPaintInvalidationState(paintInvalidationState, *th
is); |
159 clearPaintInvalidationState(paintInvalidationState); | 159 PaintInvalidationReason reason = invalidatePaintIfNeeded(newPaintInvalidatio
nState); |
| 160 clearPaintInvalidationFlags(newPaintInvalidationState); |
160 | 161 |
161 if (reason == PaintInvalidationDelayedFull) | 162 if (reason == PaintInvalidationDelayedFull) |
162 paintInvalidationState.pushDelayedPaintInvalidationTarget(*this); | 163 paintInvalidationState.pushDelayedPaintInvalidationTarget(*this); |
163 | 164 |
164 PaintInvalidationState childTreeWalkState(paintInvalidationState, *this, pai
ntInvalidationState.paintInvalidationContainer()); | |
165 if (reason == PaintInvalidationSVGResourceChange) | 165 if (reason == PaintInvalidationSVGResourceChange) |
166 childTreeWalkState.setForceSubtreeInvalidationWithinContainer(); | 166 newPaintInvalidationState.setForceSubtreeInvalidationWithinContainer(); |
167 invalidatePaintOfSubtreesIfNeeded(childTreeWalkState); | 167 |
| 168 newPaintInvalidationState.updatePaintOffsetAndClipForChildren(); |
| 169 invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState); |
168 } | 170 } |
169 | 171 |
170 } // namespace blink | 172 } // namespace blink |
OLD | NEW |