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);
|
||||
// Transform affects both overflow areas.
|
||||
if (!Preserves3DChildren()) {
|
||||
NS_FOR_FRAME_OVERFLOW_TYPES(otype) {
|
||||
nsRect& o = aOverflowAreas.Overflow(otype);
|
||||
o = nsDisplayTransform::TransformRect(o, this, nsPoint(0, 0), &newBounds);
|
||||
}
|
||||
} else {
|
||||
if (Preserves3DChildren()) {
|
||||
ComputePreserve3DChildrenOverflow(aOverflowAreas, newBounds);
|
||||
}
|
||||
}
|
||||
@@ -6785,8 +6784,8 @@ nsIFrame::ComputePreserve3DChildrenOverflow(nsOverflowAreas& aOverflowAreas, con
|
||||
}
|
||||
}
|
||||
|
||||
aOverflowAreas.Overflow(eVisualOverflow) = childVisual;
|
||||
aOverflowAreas.Overflow(eScrollableOverflow) = childScrollable;
|
||||
aOverflowAreas.Overflow(eVisualOverflow) = aOverflowAreas.Overflow(eVisualOverflow).Union(childVisual);
|
||||
aOverflowAreas.Overflow(eScrollableOverflow) = aOverflowAreas.Overflow(eScrollableOverflow).Union(childScrollable);
|
||||
}
|
||||
|
||||
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-2c.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-all.html scale3d-1-ref.html
|
||||
== scale3d-xz.html scale3d-2-ref.html
|
||||
|
||||
Reference in New Issue
Block a user