mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 923193. Make transform-origin on SVG elements use the SVG bbox as the reference rectangle. r=heycam
--HG-- extra : rebase_source : 7c8d1b42a09b9389d082195edd0c683e2dc7e12e
This commit is contained in:
parent
d7e61cc28c
commit
944645a6ad
@ -3829,8 +3829,9 @@ nsDisplayTransform::GetFrameBoundsForTransform(const nsIFrame* aFrame)
|
|||||||
NS_PRECONDITION(aFrame, "Can't get the bounds of a nonexistent frame!");
|
NS_PRECONDITION(aFrame, "Can't get the bounds of a nonexistent frame!");
|
||||||
|
|
||||||
if (aFrame->GetStateBits() & NS_FRAME_SVG_LAYOUT) {
|
if (aFrame->GetStateBits() & NS_FRAME_SVG_LAYOUT) {
|
||||||
// TODO: SVG needs to define what percentage translations resolve against.
|
gfxRect bbox = nsSVGUtils::GetBBox(const_cast<nsIFrame*>(aFrame));
|
||||||
return nsRect();
|
return nsLayoutUtils::RoundGfxRectToAppRect(bbox,
|
||||||
|
aFrame->PresContext()->AppUnitsPerCSSPixel()) - aFrame->GetPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
return nsRect(nsPoint(0, 0), aFrame->GetSize());
|
return nsRect(nsPoint(0, 0), aFrame->GetSize());
|
||||||
@ -3846,8 +3847,9 @@ nsDisplayTransform::GetFrameBoundsForTransform(const nsIFrame* aFrame)
|
|||||||
nsRect result;
|
nsRect result;
|
||||||
|
|
||||||
if (aFrame->GetStateBits() & NS_FRAME_SVG_LAYOUT) {
|
if (aFrame->GetStateBits() & NS_FRAME_SVG_LAYOUT) {
|
||||||
// TODO: SVG needs to define what percentage translations resolve against.
|
gfxRect bbox = nsSVGUtils::GetBBox(const_cast<nsIFrame*>(aFrame));
|
||||||
return result;
|
return nsLayoutUtils::RoundGfxRectToAppRect(bbox,
|
||||||
|
aFrame->PresContext()->AppUnitsPerCSSPixel()) - aFrame->GetPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Iterate through the continuation list, unioning together all the
|
/* Iterate through the continuation list, unioning together all the
|
||||||
|
@ -124,3 +124,5 @@ skip-if(B2G) fails-if(Android) fuzzy-if(cocoaWidget,1,2) == stresstest-1.html st
|
|||||||
== table-2b.html table-2-ref.html
|
== table-2b.html table-2-ref.html
|
||||||
# Bug 722463
|
# Bug 722463
|
||||||
== inline-1a.html inline-1-ref.html
|
== inline-1a.html inline-1-ref.html
|
||||||
|
== transform-origin-svg-1a.svg transform-origin-svg-1-ref.svg
|
||||||
|
== transform-origin-svg-1b.svg transform-origin-svg-1-ref.svg
|
||||||
|
3
layout/reftests/transform/transform-origin-svg-1-ref.svg
Normal file
3
layout/reftests/transform/transform-origin-svg-1-ref.svg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns='http://www.w3.org/2000/svg'>
|
||||||
|
<rect x='40' y='140' width='100' height='100' fill='lime'/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 108 B |
6
layout/reftests/transform/transform-origin-svg-1a.svg
Normal file
6
layout/reftests/transform/transform-origin-svg-1a.svg
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<svg xmlns='http://www.w3.org/2000/svg'>
|
||||||
|
<g transform="translate(30,30)">
|
||||||
|
<rect x='10' y='10' width='100' height='100' fill='lime'
|
||||||
|
style="transform:rotate(90deg); transform-origin:left bottom;"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 218 B |
7
layout/reftests/transform/transform-origin-svg-1b.svg
Normal file
7
layout/reftests/transform/transform-origin-svg-1b.svg
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<svg xmlns='http://www.w3.org/2000/svg'>
|
||||||
|
<g transform="translate(30,30)">
|
||||||
|
<rect x='10' y='10' width='100' height='100' fill='lime'
|
||||||
|
style="transform:rotate(90deg); transform-origin:10px 110px;
|
||||||
|
-webkit-transform:rotate(90deg); -webkit-transform-origin:10px 110px;"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 302 B |
Loading…
Reference in New Issue
Block a user