Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: third_party/WebKit/Source/core/layout/svg/LayoutSVGHiddenContainer.cpp

Issue 1902073002: Hoist "layout size changed" check out of SVGLayoutSupport::layoutChildren (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@svg-container-layout-cleanup-2
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698