mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 862158 - Propagate implied SVG text rotate="" values over the top of inherited implied values. r=longsonr
This commit is contained in:
parent
0b2ff3e67c
commit
56cea3b198
@ -324,6 +324,7 @@ skip-if(B2G) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == tspan-rotat
|
||||
skip-if(B2G) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == tspan-rotate-04.svg tspan-rotate-ref.svg # Bug 629718 for random failure on WinXP # bug 773482
|
||||
random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == tspan-rotate-05.svg tspan-rotate-ref.svg # Bug 629718 for random failure on WinXP
|
||||
skip-if(B2G) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == tspan-rotate-06.svg tspan-rotate-ref.svg # Bug 629718 for random failure on WinXP # bug 773482
|
||||
== tspan-rotate-07.svg tspan-rotate-07-ref.svg
|
||||
== tspan-rotate-textPath-01.svg tspan-rotate-textPath-01-ref.svg
|
||||
skip-if(B2G) == tspan-xy-01.svg tspan-xy-ref.svg # bug 773482
|
||||
skip-if(B2G) == tspan-xy-02.svg tspan-xy-ref.svg # bug 773482
|
||||
|
8
layout/reftests/svg/tspan-rotate-07-ref.svg
Normal file
8
layout/reftests/svg/tspan-rotate-07-ref.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<!--
|
||||
Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=862158 -->
|
||||
<text x="100" y="100" style="font: 32px sans-serif" rotate="45 0">A B</text>
|
||||
</svg>
|
After Width: | Height: | Size: 313 B |
8
layout/reftests/svg/tspan-rotate-07.svg
Normal file
8
layout/reftests/svg/tspan-rotate-07.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<!--
|
||||
Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=862158 -->
|
||||
<text x="100" y="100" style="font: 32px sans-serif"><tspan rotate="45">A </tspan>B</text>
|
||||
</svg>
|
After Width: | Height: | Size: 326 B |
@ -4128,8 +4128,11 @@ nsSVGTextFrame2::ResolvePositions(nsIContent* aContent,
|
||||
j++;
|
||||
}
|
||||
// Propagate final rotate="" value to the end of this element.
|
||||
while (j < count) {
|
||||
while (j < count &&
|
||||
(!mPositions[aIndex + j].IsAngleSpecified() ||
|
||||
mPositions[aIndex + j].mAngleImplied)) {
|
||||
mPositions[aIndex + j].mAngle = mPositions[aIndex + j - 1].mAngle;
|
||||
mPositions[aIndex + j].mAngleImplied = true;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
@ -4661,11 +4664,7 @@ nsSVGTextFrame2::DoGlyphPositioning()
|
||||
}
|
||||
// Fill in unspecified rotation values.
|
||||
if (!mPositions[i].IsAngleSpecified()) {
|
||||
mPositions[i].mAngle = mPositions[i - 1].mAngle;
|
||||
if (mPositions[i].mAngle != 0.0f) {
|
||||
// Any non-zero rotation must begin a run boundary.
|
||||
mPositions[i].mRunBoundary = true;
|
||||
}
|
||||
mPositions[i].mAngle = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,8 @@ struct CharPosition
|
||||
mUnaddressable(false),
|
||||
mClusterOrLigatureGroupMiddle(false),
|
||||
mRunBoundary(false),
|
||||
mStartOfChunk(false)
|
||||
mStartOfChunk(false),
|
||||
mAngleImplied(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -58,7 +59,8 @@ struct CharPosition
|
||||
mUnaddressable(false),
|
||||
mClusterOrLigatureGroupMiddle(false),
|
||||
mRunBoundary(false),
|
||||
mStartOfChunk(false)
|
||||
mStartOfChunk(false),
|
||||
mAngleImplied(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -102,6 +104,10 @@ struct CharPosition
|
||||
// an anchored chunk begins here
|
||||
bool mStartOfChunk;
|
||||
|
||||
// whether the angle value was implied due to the repetition of the final
|
||||
// value in a rotate="" attribute
|
||||
bool mAngleImplied;
|
||||
|
||||
private:
|
||||
static gfxFloat UnspecifiedCoord()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user