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 17 matching lines...) Expand all Loading... |
28 : LayoutSVGContainer(element) | 28 : LayoutSVGContainer(element) |
29 { | 29 { |
30 } | 30 } |
31 | 31 |
32 void LayoutSVGHiddenContainer::layout() | 32 void LayoutSVGHiddenContainer::layout() |
33 { | 33 { |
34 ASSERT(needsLayout()); | 34 ASSERT(needsLayout()); |
35 LayoutAnalyzer::Scope analyzer(*this); | 35 LayoutAnalyzer::Scope analyzer(*this); |
36 // TODO(fs): In what cases do we need this? | 36 // TODO(fs): In what cases do we need this? |
37 bool transformChanged = SVGLayoutSupport::transformToRootChanged(this); | 37 bool transformChanged = SVGLayoutSupport::transformToRootChanged(this); |
38 SVGLayoutSupport::layoutChildren(this, selfNeedsLayout(), transformChanged); | 38 |
| 39 // When hasRelativeLengths() is false, no descendants have relative lengths |
| 40 // (hence no one is interested in viewport size changes). |
| 41 bool layoutSizeChanged = element()->hasRelativeLengths() |
| 42 && SVGLayoutSupport::layoutSizeOfNearestViewportChanged(this); |
| 43 |
| 44 SVGLayoutSupport::layoutChildren(this, selfNeedsLayout(), transformChanged,
layoutSizeChanged); |
39 updateCachedBoundaries(); | 45 updateCachedBoundaries(); |
40 clearNeedsLayout(); | 46 clearNeedsLayout(); |
41 } | 47 } |
42 | 48 |
43 void LayoutSVGHiddenContainer::paint(const PaintInfo&, const LayoutPoint&) const | 49 void LayoutSVGHiddenContainer::paint(const PaintInfo&, const LayoutPoint&) const |
44 { | 50 { |
45 // This subtree does not paint. | 51 // This subtree does not paint. |
46 } | 52 } |
47 | 53 |
48 void LayoutSVGHiddenContainer::absoluteQuads(Vector<FloatQuad>&) const | 54 void LayoutSVGHiddenContainer::absoluteQuads(Vector<FloatQuad>&) const |
49 { | 55 { |
50 // This subtree does not take up space or paint | 56 // This subtree does not take up space or paint |
51 } | 57 } |
52 | 58 |
53 bool LayoutSVGHiddenContainer::nodeAtFloatPoint(HitTestResult&, const FloatPoint
&, HitTestAction) | 59 bool LayoutSVGHiddenContainer::nodeAtFloatPoint(HitTestResult&, const FloatPoint
&, HitTestAction) |
54 { | 60 { |
55 return false; | 61 return false; |
56 } | 62 } |
57 | 63 |
58 } // namespace blink | 64 } // namespace blink |
OLD | NEW |