| 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 |