Bug 611975 - text with gradient on stroke breaks when fill of any kind exists r=roc,a=blocking-final+

This commit is contained in:
Robert Longson 2010-11-27 09:24:32 +00:00
parent 2304360065
commit 13c470c552
3 changed files with 25 additions and 0 deletions

View File

@ -158,6 +158,7 @@ random-if(gtk2Widget) == text-font-weight-01.svg text-font-weight-01-ref.svg # b
asserts(3) == symbol-01.svg symbol-01-ref.svg # see bug 563481
== text-gradient-01.svg text-gradient-01-ref.svg
random-if(winWidget) == text-gradient-02.svg text-gradient-02-ref.svg # see bug 590101
random-if(winWidget) == text-gradient-03.svg pass.svg # bug 614324
== text-in-link-01.svg text-in-link-01-ref.svg
== text-in-link-02.svg text-in-link-02-ref.svg
== text-in-link-03.svg text-in-link-03-ref.svg

View File

@ -0,0 +1,22 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/licenses/publicdomain/
-->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Testcase for gradient on text</title>
<!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=611975 -->
<defs>
<linearGradient id="grad" x1="0" y1="-0.1" x2="0" y2="1" gradientUnits="objectBoundingBox">
<stop stop-color="red" offset="-10%"/>
<stop stop-color="lime" offset="0%"/>
</linearGradient>
</defs>
<g fill="lime">
<rect width="100%" height="100%"/>
<text x="100" y="100" stroke-width="5" stroke="url(#grad)" font-size="80px">SHOULD NOT SEE THIS</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 725 B

View File

@ -381,7 +381,9 @@ nsSVGGlyphFrame::PaintSVG(nsSVGRenderState *aContext,
iter.SetInitialMatrix(gfx);
if (SetupCairoFill(gfx)) {
gfxMatrix matrix = gfx->CurrentMatrix();
FillCharacters(&iter, gfx);
gfx->SetMatrix(matrix);
}
if (SetupCairoStroke(gfx)) {