OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> | 2 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 18 matching lines...) Expand all Loading... |
29 : LayoutObject(element) {} | 29 : LayoutObject(element) {} |
30 | 30 |
31 LayoutSVGGradientStop::~LayoutSVGGradientStop() {} | 31 LayoutSVGGradientStop::~LayoutSVGGradientStop() {} |
32 | 32 |
33 void LayoutSVGGradientStop::styleDidChange(StyleDifference diff, | 33 void LayoutSVGGradientStop::styleDidChange(StyleDifference diff, |
34 const ComputedStyle* oldStyle) { | 34 const ComputedStyle* oldStyle) { |
35 LayoutObject::styleDidChange(diff, oldStyle); | 35 LayoutObject::styleDidChange(diff, oldStyle); |
36 if (!diff.hasDifference()) | 36 if (!diff.hasDifference()) |
37 return; | 37 return; |
38 | 38 |
39 // <stop> elements should only be allowed to make layoutObjects under gradient
elements | 39 // <stop> elements should only be allowed to make layoutObjects under gradient |
40 // but I can imagine a few cases we might not be catching, so let's not crash
if our parent isn't a gradient. | 40 // elements but I can imagine a few cases we might not be catching, so let's |
| 41 // not crash if our parent isn't a gradient. |
41 SVGGradientElement* gradient = gradientElement(); | 42 SVGGradientElement* gradient = gradientElement(); |
42 if (!gradient) | 43 if (!gradient) |
43 return; | 44 return; |
44 | 45 |
45 LayoutObject* layoutObject = gradient->layoutObject(); | 46 LayoutObject* layoutObject = gradient->layoutObject(); |
46 if (!layoutObject) | 47 if (!layoutObject) |
47 return; | 48 return; |
48 | 49 |
49 LayoutSVGResourceContainer* container = | 50 LayoutSVGResourceContainer* container = |
50 toLayoutSVGResourceContainer(layoutObject); | 51 toLayoutSVGResourceContainer(layoutObject); |
51 container->removeAllClientsFromCache(); | 52 container->removeAllClientsFromCache(); |
52 } | 53 } |
53 | 54 |
54 void LayoutSVGGradientStop::layout() { | 55 void LayoutSVGGradientStop::layout() { |
55 clearNeedsLayout(); | 56 clearNeedsLayout(); |
56 } | 57 } |
57 | 58 |
58 SVGGradientElement* LayoutSVGGradientStop::gradientElement() const { | 59 SVGGradientElement* LayoutSVGGradientStop::gradientElement() const { |
59 ContainerNode* parentNode = node()->parentNode(); | 60 ContainerNode* parentNode = node()->parentNode(); |
60 ASSERT(parentNode); | 61 ASSERT(parentNode); |
61 return isSVGGradientElement(*parentNode) ? toSVGGradientElement(parentNode) | 62 return isSVGGradientElement(*parentNode) ? toSVGGradientElement(parentNode) |
62 : 0; | 63 : 0; |
63 } | 64 } |
64 | 65 |
65 } // namespace blink | 66 } // namespace blink |
OLD | NEW |