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

Side by Side Diff: Source/core/rendering/svg/RenderSVGContainer.cpp

Issue 261773008: [SVG2] css 'outline' property should apply to svg elements (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: use Ahem instead Created 6 years, 7 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) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2007, 2008 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2007, 2008 Rob Buis <buis@kde.org>
4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> 4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
5 * Copyright (C) 2009 Google, Inc. All rights reserved. 5 * Copyright (C) 2009 Google, Inc. All rights reserved.
6 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 6 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 } 141 }
142 142
143 if (continueRendering) { 143 if (continueRendering) {
144 childPaintInfo.updatePaintingRootForChildren(this); 144 childPaintInfo.updatePaintingRootForChildren(this);
145 for (RenderObject* child = firstChild(); child; child = child->nextS ibling()) 145 for (RenderObject* child = firstChild(); child; child = child->nextS ibling())
146 child->paint(childPaintInfo, IntPoint()); 146 child->paint(childPaintInfo, IntPoint());
147 } 147 }
148 } 148 }
149 149
150 // FIXME: This really should be drawn from local coordinates, but currently we hack it 150 // FIXME: This really should be drawn from local coordinates, but currently we hack it
151 // to avoid our clip killing our outline rect. Thus we translate our 151 // to avoid our clip killing our outline rect. Thus we translate our
152 // outline rect into parent coords before drawing. 152 // outline rect into parent coords before drawing.
153 // FIXME: This means our focus ring won't share our rotation like it should. 153 // FIXME: This means our focus ring won't share our rotation like it should.
154 // We should instead disable our clip during PaintPhaseOutline 154 // We should instead disable our clip during PaintPhaseOutline
155 if ((paintInfo.phase == PaintPhaseOutline || paintInfo.phase == PaintPhaseSe lfOutline) && style()->outlineWidth() && style()->visibility() == VISIBLE) { 155 if (paintInfo.phase == PaintPhaseForeground && style()->outlineWidth() && st yle()->visibility() == VISIBLE) {
156 IntRect paintRectInParent = enclosingIntRect(localToParentTransform().ma pRect(repaintRect)); 156 IntRect paintRectInParent = enclosingIntRect(localToParentTransform().ma pRect(repaintRect));
157 paintOutline(paintInfo, paintRectInParent); 157 paintOutline(paintInfo, paintRectInParent);
158 } 158 }
159 } 159 }
160 160
161 // addFocusRingRects is called from paintOutline and needs to be in the same coo rdinates as the paintOuline call 161 // addFocusRingRects is called from paintOutline and needs to be in the same coo rdinates as the paintOuline call
162 void RenderSVGContainer::addFocusRingRects(Vector<IntRect>& rects, const LayoutP oint&, const RenderLayerModelObject*) 162 void RenderSVGContainer::addFocusRingRects(Vector<IntRect>& rects, const LayoutP oint&, const RenderLayerModelObject*)
163 { 163 {
164 IntRect paintRectInParent = enclosingIntRect(localToParentTransform().mapRec t(repaintRectInLocalCoordinates())); 164 IntRect paintRectInParent = enclosingIntRect(localToParentTransform().mapRec t(repaintRectInLocalCoordinates()));
165 if (!paintRectInParent.isEmpty()) 165 if (!paintRectInParent.isEmpty())
(...skipping 30 matching lines...) Expand all
196 if (objectBoundingBox().contains(localPoint)) { 196 if (objectBoundingBox().contains(localPoint)) {
197 updateHitTestResult(result, roundedLayoutPoint(localPoint)); 197 updateHitTestResult(result, roundedLayoutPoint(localPoint));
198 return true; 198 return true;
199 } 199 }
200 } 200 }
201 // 16.4: "If there are no graphics elements whose relevant graphics content is under the pointer (i.e., there is no target element), the event is not dispat ched." 201 // 16.4: "If there are no graphics elements whose relevant graphics content is under the pointer (i.e., there is no target element), the event is not dispat ched."
202 return false; 202 return false;
203 } 203 }
204 204
205 } 205 }
OLDNEW
« no previous file with comments | « LayoutTests/svg/text/tspan-outline-expected.svg ('k') | Source/core/rendering/svg/RenderSVGImage.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698