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

Side by Side Diff: Source/WebCore/rendering/svg/RenderSVGText.cpp

Issue 9933004: Merge 112119 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1025/
Patch Set: Created 8 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
« no previous file with comments | « Source/WebCore/rendering/svg/RenderSVGText.h ('k') | Source/WebCore/svg/SVGAElement.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Apple Computer, Inc. 2 * Copyright (C) 2006 Apple Computer, Inc.
3 * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org> 3 * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
4 * Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz> 4 * Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz>
5 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> 5 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
6 * Copyright (C) 2008 Rob Buis <buis@kde.org> 6 * Copyright (C) 2008 Rob Buis <buis@kde.org>
7 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 7 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
8 * Copyright (C) Research In Motion Limited 2010-2012. All rights reserved. 8 * Copyright (C) Research In Motion Limited 2010-2012. All rights reserved.
9 * Copyright (C) 2012 Google Inc.
9 * 10 *
10 * This library is free software; you can redistribute it and/or 11 * This library is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Library General Public 12 * modify it under the terms of the GNU Library General Public
12 * License as published by the Free Software Foundation; either 13 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version. 14 * version 2 of the License, or (at your option) any later version.
14 * 15 *
15 * This library is distributed in the hope that it will be useful, 16 * This library is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Library General Public License for more details. 19 * Library General Public License for more details.
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 bool stopAfterNext = false; 170 bool stopAfterNext = false;
170 SVGTextLayoutAttributes* previous = 0; 171 SVGTextLayoutAttributes* previous = 0;
171 SVGTextLayoutAttributes* next = 0; 172 SVGTextLayoutAttributes* next = 0;
172 findPreviousAndNextAttributes(this, text, stopAfterNext, previous, next); 173 findPreviousAndNextAttributes(this, text, stopAfterNext, previous, next);
173 if (previous) 174 if (previous)
174 affectedAttributes.append(previous); 175 affectedAttributes.append(previous);
175 if (next) 176 if (next)
176 affectedAttributes.append(next); 177 affectedAttributes.append(next);
177 } 178 }
178 179
179 void RenderSVGText::textDOMChanged() 180 void RenderSVGText::invalidateTextPositioningElements()
180 { 181 {
181 if (m_needsPositioningValuesUpdate) 182 // Clear the text positioning elements. This should be called when either th e children
182 return; 183 // of a DOM text element have changed, or the length of the text in any chil d element
184 // has changed. Failure to clear may leave us with invalid elements, as othe r code paths
185 // do not always cause the position elements to be marked invalid before use .
183 m_layoutAttributesBuilder.clearTextPositioningElements(); 186 m_layoutAttributesBuilder.clearTextPositioningElements();
184 } 187 }
185 188
186 static inline void recursiveUpdateScaledFont(RenderObject* start) 189 static inline void recursiveUpdateScaledFont(RenderObject* start)
187 { 190 {
188 for (RenderObject* child = start->firstChild(); child; child = child->nextSi bling()) { 191 for (RenderObject* child = start->firstChild(); child; child = child->nextSi bling()) {
189 if (child->isSVGInlineText()) { 192 if (child->isSVGInlineText()) {
190 toRenderSVGInlineText(child)->updateScaledFont(); 193 toRenderSVGInlineText(child)->updateScaledFont();
191 continue; 194 continue;
192 } 195 }
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 size = affectedAttributes.size(); 428 size = affectedAttributes.size();
426 for (size_t i = 0; i < size; ++i) 429 for (size_t i = 0; i < size; ++i)
427 m_layoutAttributesBuilder.rebuildMetricsForTextRenderer(affectedAttribut es[i]->context()); 430 m_layoutAttributesBuilder.rebuildMetricsForTextRenderer(affectedAttribut es[i]->context());
428 431
429 m_layoutAttributes = newLayoutAttributes; 432 m_layoutAttributes = newLayoutAttributes;
430 } 433 }
431 434
432 } 435 }
433 436
434 #endif // ENABLE(SVG) 437 #endif // ENABLE(SVG)
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/svg/RenderSVGText.h ('k') | Source/WebCore/svg/SVGAElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698