OLD | NEW |
1 /* | 1 /* |
2 Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> | 2 Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> |
3 2004, 2005, 2010 Rob Buis <buis@kde.org> | 3 2004, 2005, 2010 Rob Buis <buis@kde.org> |
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 Based on khtml code by: | 6 Based on khtml code by: |
7 Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) | 7 Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) |
8 Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) | 8 Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) |
9 Copyright (C) 2002-2003 Dirk Mueller (mueller@kde.org) | 9 Copyright (C) 2002-2003 Dirk Mueller (mueller@kde.org) |
10 Copyright (C) 2002 Apple Computer, Inc. | 10 Copyright (C) 2002 Apple Computer, Inc. |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 || svg_inherited_flags._joinStyle != other->svg_inherited_flags._joinSty
le) | 162 || svg_inherited_flags._joinStyle != other->svg_inherited_flags._joinSty
le) |
163 return StyleDifferenceLayout; | 163 return StyleDifferenceLayout; |
164 | 164 |
165 // Shadow changes require relayouts, as they affect the repaint rects. | 165 // Shadow changes require relayouts, as they affect the repaint rects. |
166 if (shadowSVG != other->shadowSVG) | 166 if (shadowSVG != other->shadowSVG) |
167 return StyleDifferenceLayout; | 167 return StyleDifferenceLayout; |
168 | 168 |
169 // Some stroke properties, requires relayouts, as the cached stroke boundari
es need to be recalculated. | 169 // Some stroke properties, requires relayouts, as the cached stroke boundari
es need to be recalculated. |
170 if (stroke != other->stroke) { | 170 if (stroke != other->stroke) { |
171 if (stroke->width != other->stroke->width | 171 if (stroke->width != other->stroke->width |
172 || stroke->paintType != other->stroke->paintType | 172 || stroke->paint != other->stroke->paint |
173 || stroke->paintColor != other->stroke->paintColor | |
174 || stroke->paintUri != other->stroke->paintUri | |
175 || stroke->miterLimit != other->stroke->miterLimit | 173 || stroke->miterLimit != other->stroke->miterLimit |
176 || stroke->dashArray != other->stroke->dashArray | 174 || stroke->dashArray != other->stroke->dashArray |
177 || stroke->dashOffset != other->stroke->dashOffset) | 175 || stroke->dashOffset != other->stroke->dashOffset) |
178 return StyleDifferenceLayout; | 176 return StyleDifferenceLayout; |
179 | 177 |
180 // Only the stroke-opacity case remains, where we only need a repaint. | 178 // Only the stroke-opacity case remains, where we only need a repaint. |
181 ASSERT(stroke->opacity != other->stroke->opacity); | 179 ASSERT(stroke->opacity != other->stroke->opacity); |
182 return StyleDifferenceRepaint; | 180 return StyleDifferenceRepaint; |
183 } | 181 } |
184 | 182 |
185 // NOTE: All comparisions below may only return StyleDifferenceRepaint | 183 // NOTE: All comparisions below may only return StyleDifferenceRepaint |
186 | 184 |
187 // Painting related properties only need repaints. | 185 // Painting related properties only need repaints. |
188 if (miscNotEqual) { | 186 if (miscNotEqual) { |
189 if (misc->floodColor != other->misc->floodColor | 187 if (misc->floodColor != other->misc->floodColor |
190 || misc->floodOpacity != other->misc->floodOpacity | 188 || misc->floodOpacity != other->misc->floodOpacity |
191 || misc->lightingColor != other->misc->lightingColor) | 189 || misc->lightingColor != other->misc->lightingColor) |
192 return StyleDifferenceRepaint; | 190 return StyleDifferenceRepaint; |
193 } | 191 } |
194 | 192 |
195 // If fill changes, we just need to repaint. Fill boundaries are not influen
ced by this, only by the Path, that RenderSVGPath contains. | 193 // If fill changes, we just need to repaint. Fill boundaries are not influen
ced by this, only by the Path, that RenderSVGPath contains. |
196 if (fill->paintType != other->fill->paintType || fill->paintColor != other->
fill->paintColor || fill->paintUri != other->fill->paintUri) | 194 if (fill != other->fill) |
197 return StyleDifferenceRepaint; | 195 return StyleDifferenceRepaint; |
198 | 196 |
199 // If gradient stops change, we just need to repaint. Style updates are alre
ady handled through RenderSVGGradientSTop. | 197 // If gradient stops change, we just need to repaint. Style updates are alre
ady handled through RenderSVGGradientSTop. |
200 if (stops != other->stops) | 198 if (stops != other->stops) |
201 return StyleDifferenceRepaint; | 199 return StyleDifferenceRepaint; |
202 | 200 |
203 // Changes of these flags only cause repaints. | 201 // Changes of these flags only cause repaints. |
204 if (svg_inherited_flags._colorRendering != other->svg_inherited_flags._color
Rendering | 202 if (svg_inherited_flags._colorRendering != other->svg_inherited_flags._color
Rendering |
205 || svg_inherited_flags._imageRendering != other->svg_inherited_flags._im
ageRendering | 203 || svg_inherited_flags._imageRendering != other->svg_inherited_flags._im
ageRendering |
206 || svg_inherited_flags._shapeRendering != other->svg_inherited_flags._sh
apeRendering | 204 || svg_inherited_flags._shapeRendering != other->svg_inherited_flags._sh
apeRendering |
207 || svg_inherited_flags._clipRule != other->svg_inherited_flags._clipRule | 205 || svg_inherited_flags._clipRule != other->svg_inherited_flags._clipRule |
208 || svg_inherited_flags._fillRule != other->svg_inherited_flags._fillRule | 206 || svg_inherited_flags._fillRule != other->svg_inherited_flags._fillRule |
209 || svg_inherited_flags._colorInterpolation != other->svg_inherited_flags
._colorInterpolation | 207 || svg_inherited_flags._colorInterpolation != other->svg_inherited_flags
._colorInterpolation |
210 || svg_inherited_flags._colorInterpolationFilters != other->svg_inherite
d_flags._colorInterpolationFilters) | 208 || svg_inherited_flags._colorInterpolationFilters != other->svg_inherite
d_flags._colorInterpolationFilters) |
211 return StyleDifferenceRepaint; | 209 return StyleDifferenceRepaint; |
212 | 210 |
213 // FIXME: vector-effect is not taken into account in the layout-phase. Once
this is fixed, we should relayout here. | 211 // FIXME: vector-effect is not taken into account in the layout-phase. Once
this is fixed, we should relayout here. |
214 if (svg_noninherited_flags.f._vectorEffect != other->svg_noninherited_flags.
f._vectorEffect) | 212 if (svg_noninherited_flags.f._vectorEffect != other->svg_noninherited_flags.
f._vectorEffect) |
215 return StyleDifferenceRepaint; | 213 return StyleDifferenceRepaint; |
216 | 214 |
217 return StyleDifferenceEqual; | 215 return StyleDifferenceEqual; |
218 } | 216 } |
219 | 217 |
220 } | 218 } |
221 | 219 |
222 #endif // ENABLE(SVG) | 220 #endif // ENABLE(SVG) |
OLD | NEW |