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

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

Issue 1553473002: Fix SVG {text, foreignObject} transform for css animation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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) 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 * Copyright (C) 2012 Google Inc.
10 * 10 *
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 return createPositionWithAffinity(0); 460 return createPositionWithAffinity(0);
461 461
462 return closestBox->lineLayoutItem().positionForPoint(LayoutPoint(pointInCont ents.x(), closestBox->y())); 462 return closestBox->lineLayoutItem().positionForPoint(LayoutPoint(pointInCont ents.x(), closestBox->y()));
463 } 463 }
464 464
465 void LayoutSVGText::absoluteQuads(Vector<FloatQuad>& quads, bool* wasFixed) cons t 465 void LayoutSVGText::absoluteQuads(Vector<FloatQuad>& quads, bool* wasFixed) cons t
466 { 466 {
467 quads.append(localToAbsoluteQuad(strokeBoundingBox(), 0 /* mode */, wasFixed )); 467 quads.append(localToAbsoluteQuad(strokeBoundingBox(), 0 /* mode */, wasFixed ));
468 } 468 }
469 469
470 void LayoutSVGText::styleDidChange(StyleDifference diff, const ComputedStyle* ol dStyle)
471 {
472 if (diff.needsFullLayout()) {
473 setNeedsBoundariesUpdate();
474 if (style()->hasTransform())
fs 2016/01/02 16:41:13 Since LayoutSVGBlock doesn't do this, then presuma
475 setNeedsTransformUpdate();
476 }
477 LayoutSVGBlock::styleDidChange(diff, oldStyle);
478 SVGResourcesCache::clientStyleChanged(this, diff, styleRef());
fs 2016/01/02 16:41:13 The call to the super-class (just above) would've
479 }
480
470 void LayoutSVGText::paint(const PaintInfo& paintInfo, const LayoutPoint&) const 481 void LayoutSVGText::paint(const PaintInfo& paintInfo, const LayoutPoint&) const
471 { 482 {
472 SVGTextPainter(*this).paint(paintInfo); 483 SVGTextPainter(*this).paint(paintInfo);
473 } 484 }
474 485
475 FloatRect LayoutSVGText::strokeBoundingBox() const 486 FloatRect LayoutSVGText::strokeBoundingBox() const
476 { 487 {
477 FloatRect strokeBoundaries = objectBoundingBox(); 488 FloatRect strokeBoundaries = objectBoundingBox();
478 const SVGComputedStyle& svgStyle = style()->svgStyle(); 489 const SVGComputedStyle& svgStyle = style()->svgStyle();
479 if (!svgStyle.hasStroke()) 490 if (!svgStyle.hasStroke())
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 paintInvalidationState.pushDelayedPaintInvalidationTarget(*this); 541 paintInvalidationState.pushDelayedPaintInvalidationTarget(*this);
531 542
532 ForceHorriblySlowRectMapping slowRectMapping(&paintInvalidationState); 543 ForceHorriblySlowRectMapping slowRectMapping(&paintInvalidationState);
533 PaintInvalidationState childTreeWalkState(paintInvalidationState, *this, pai ntInvalidationState.paintInvalidationContainer()); 544 PaintInvalidationState childTreeWalkState(paintInvalidationState, *this, pai ntInvalidationState.paintInvalidationContainer());
534 if (reason == PaintInvalidationSVGResourceChange) 545 if (reason == PaintInvalidationSVGResourceChange)
535 childTreeWalkState.setForceSubtreeInvalidationWithinContainer(); 546 childTreeWalkState.setForceSubtreeInvalidationWithinContainer();
536 invalidatePaintOfSubtreesIfNeeded(childTreeWalkState); 547 invalidatePaintOfSubtreesIfNeeded(childTreeWalkState);
537 } 548 }
538 549
539 } 550 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698