Bug 641858 - text does not reflect dynamic gradient/pattern changes r=jwatt

This commit is contained in:
Robert Longson 2011-04-03 13:23:40 +01:00
Родитель 1372d22058
Коммит addbf1b91b
6 изменённых файлов: 18 добавлений и 6 удалений

Просмотреть файл

@ -1,5 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
xmlns:xlink="http://www.w3.org/1999/xlink" font-size="80">
<linearGradient id="grad1" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
<stop id="green" stop-color="#00dd00" offset="0"/>
@ -10,5 +10,7 @@
<linearGradient id="grad2" xlink:href="#grad1"/>
<rect x="20" y="150" width="440" height="80" fill="url(#grad2)" />
<text x="20" y="300" width="440" height="80" fill="url(#grad1)">gradiation</text>
<text x="20" y="400" width="440" height="80" fill="url(#grad2)">gradiation</text>
</svg>

До

Ширина:  |  Высота:  |  Размер: 563 B

После

Ширина:  |  Высота:  |  Размер: 742 B

Просмотреть файл

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
class="reftest-wait">
class="reftest-wait" font-size="80">
<script type="application/javascript">
document.addEventListener("MozReftestInvalidate", doTest, false);
@ -24,5 +24,7 @@
<linearGradient id="grad2" xlink:href="#grad1"/>
<rect x="20" y="150" width="440" height="80" fill="url(#grad2)" />
<text x="20" y="300" width="440" height="80" fill="url(#grad1)">gradiation</text>
<text x="20" y="400" width="440" height="80" fill="url(#grad2)">gradiation</text>
</svg>

До

Ширина:  |  Высота:  |  Размер: 992 B

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
class="reftest-wait">
class="reftest-wait" font-size="80">
<script type="application/javascript">
document.addEventListener("MozReftestInvalidate", doTest, false);
@ -22,5 +22,7 @@
<linearGradient id="grad2" xlink:href="#grad1"/>
<rect x="20" y="150" width="440" height="80" fill="url(#grad2)" />
<text x="20" y="300" width="440" height="80" fill="url(#grad1)">gradiation</text>
<text x="20" y="400" width="440" height="80" fill="url(#grad2)">gradiation</text>
</svg>

До

Ширина:  |  Высота:  |  Размер: 920 B

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
class="reftest-wait">
class="reftest-wait" font-size="80">
<script type="application/javascript">
document.addEventListener("MozReftestInvalidate", doTest, false);
@ -23,5 +23,7 @@
<linearGradient id="grad2" xlink:href="#grad1"/>
<rect x="20" y="150" width="440" height="80" fill="url(#grad2)" />
<text x="20" y="300" width="440" height="80" fill="url(#grad1)">gradiation</text>
<text x="20" y="400" width="440" height="80" fill="url(#grad2)">gradiation</text>
</svg>

До

Ширина:  |  Высота:  |  Размер: 935 B

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
class="reftest-wait">
class="reftest-wait" font-size="80">
<!-- Tests that gradients are live to stop addition. -->
@ -26,5 +26,7 @@ function addBlueStop()
<linearGradient id="grad2" xlink:href="#grad1"/>
<rect x="20" y="150" width="440" height="80" fill="url(#grad2)" />
<text x="20" y="300" width="440" height="80" fill="url(#grad1)">gradiation</text>
<text x="20" y="400" width="440" height="80" fill="url(#grad2)">gradiation</text>
</svg>

До

Ширина:  |  Высота:  |  Размер: 1018 B

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Просмотреть файл

@ -68,8 +68,10 @@ nsSVGGeometryFrame::GetPaintServer(const nsStyleSVGPaint *aPaint,
if (aPaint->mType != eStyleSVGPaintType_Server)
return nsnull;
nsIFrame *frame = mContent->IsNodeOfType(nsINode::eTEXT) ?
GetParent() : this;
nsSVGPaintingProperty *property =
nsSVGEffects::GetPaintingProperty(aPaint->mPaint.mPaintServer, this, aType);
nsSVGEffects::GetPaintingProperty(aPaint->mPaint.mPaintServer, frame, aType);
if (!property)
return nsnull;
nsIFrame *result = property->GetReferencedFrame();