Bug 702375 - Include the current frame bounds in preserve-3d overflow calculations. r=roc
This commit is contained in:
@@ -6627,12 +6627,11 @@ nsIFrame::FinishAndStoreOverflow(nsOverflowAreas& aOverflowAreas,
|
|||||||
*/
|
*/
|
||||||
nsRect newBounds(nsPoint(0, 0), aNewSize);
|
nsRect newBounds(nsPoint(0, 0), aNewSize);
|
||||||
// Transform affects both overflow areas.
|
// Transform affects both overflow areas.
|
||||||
if (!Preserves3DChildren()) {
|
NS_FOR_FRAME_OVERFLOW_TYPES(otype) {
|
||||||
NS_FOR_FRAME_OVERFLOW_TYPES(otype) {
|
nsRect& o = aOverflowAreas.Overflow(otype);
|
||||||
nsRect& o = aOverflowAreas.Overflow(otype);
|
o = nsDisplayTransform::TransformRect(o, this, nsPoint(0, 0), &newBounds);
|
||||||
o = nsDisplayTransform::TransformRect(o, this, nsPoint(0, 0), &newBounds);
|
}
|
||||||
}
|
if (Preserves3DChildren()) {
|
||||||
} else {
|
|
||||||
ComputePreserve3DChildrenOverflow(aOverflowAreas, newBounds);
|
ComputePreserve3DChildrenOverflow(aOverflowAreas, newBounds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6785,8 +6784,8 @@ nsIFrame::ComputePreserve3DChildrenOverflow(nsOverflowAreas& aOverflowAreas, con
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
aOverflowAreas.Overflow(eVisualOverflow) = childVisual;
|
aOverflowAreas.Overflow(eVisualOverflow) = aOverflowAreas.Overflow(eVisualOverflow).Union(childVisual);
|
||||||
aOverflowAreas.Overflow(eScrollableOverflow) = childScrollable;
|
aOverflowAreas.Overflow(eScrollableOverflow) = aOverflowAreas.Overflow(eScrollableOverflow).Union(childScrollable);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
8
layout/reftests/transform-3d/preserve3d-3-ref.html
Normal file
8
layout/reftests/transform-3d/preserve3d-3-ref.html
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div style="-moz-transform: rotatex(45deg); width: 100px; height: 100px; background:red;">
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
8
layout/reftests/transform-3d/preserve3d-3a.html
Normal file
8
layout/reftests/transform-3d/preserve3d-3a.html
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div style="-moz-transform: rotatex(45deg); -moz-transform-style: preserve-3d; width: 100px; height: 100px; background:red;">
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -16,6 +16,7 @@ fails == preserve3d-1a.html preserve3d-1-ref.html
|
|||||||
== preserve3d-2b.html preserve3d-2-ref.html
|
== preserve3d-2b.html preserve3d-2-ref.html
|
||||||
== preserve3d-2c.html preserve3d-2-ref.html
|
== preserve3d-2c.html preserve3d-2-ref.html
|
||||||
== preserve3d-2d.html preserve3d-2-ref.html
|
== preserve3d-2d.html preserve3d-2-ref.html
|
||||||
|
== preserve3d-3a.html preserve3d-3-ref.html
|
||||||
== scale3d-z.html scalez-1-ref.html
|
== scale3d-z.html scalez-1-ref.html
|
||||||
== scale3d-all.html scale3d-1-ref.html
|
== scale3d-all.html scale3d-1-ref.html
|
||||||
== scale3d-xz.html scale3d-2-ref.html
|
== scale3d-xz.html scale3d-2-ref.html
|
||||||
|
|||||||
Reference in New Issue
Block a user