Bug 860253. Clear clip state on children of an nsDisplayTransform because they're in a different coordinate system, and we'll clip the nsDisplayTransform itself. r=mattwoodrow

This commit is contained in:
Robert O'Callahan 2013-04-15 19:10:19 +12:00
parent a3114aa95b
commit badcb00fcb

View File

@ -807,11 +807,19 @@ nsSimplePageSequenceFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
DisplayBorderBackgroundOutline(aBuilder, aLists);
nsDisplayList content;
nsIFrame* child = GetFirstPrincipalChild();
while (child) {
child->BuildDisplayListForStackingContext(aBuilder,
child->GetVisualOverflowRectRelativeToSelf(), &content);
child = child->GetNextSibling();
{
// Clear clip state while we construct the children of the
// nsDisplayTransform, since they'll be in a different coordinate system.
DisplayListClipState::AutoSaveRestore clipState(aBuilder);
clipState.Clear();
nsIFrame* child = GetFirstPrincipalChild();
while (child) {
child->BuildDisplayListForStackingContext(aBuilder,
child->GetVisualOverflowRectRelativeToSelf(), &content);
child = child->GetNextSibling();
}
}
content.AppendNewToTop(new (aBuilder)