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:
@@ -807,12 +807,20 @@ nsSimplePageSequenceFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
|||||||
DisplayBorderBackgroundOutline(aBuilder, aLists);
|
DisplayBorderBackgroundOutline(aBuilder, aLists);
|
||||||
|
|
||||||
nsDisplayList content;
|
nsDisplayList content;
|
||||||
|
|
||||||
|
{
|
||||||
|
// 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();
|
nsIFrame* child = GetFirstPrincipalChild();
|
||||||
while (child) {
|
while (child) {
|
||||||
child->BuildDisplayListForStackingContext(aBuilder,
|
child->BuildDisplayListForStackingContext(aBuilder,
|
||||||
child->GetVisualOverflowRectRelativeToSelf(), &content);
|
child->GetVisualOverflowRectRelativeToSelf(), &content);
|
||||||
child = child->GetNextSibling();
|
child = child->GetNextSibling();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
content.AppendNewToTop(new (aBuilder)
|
content.AppendNewToTop(new (aBuilder)
|
||||||
nsDisplayTransform(aBuilder, this, &content, ::ComputePageSequenceTransform));
|
nsDisplayTransform(aBuilder, this, &content, ::ComputePageSequenceTransform));
|
||||||
|
|||||||
Reference in New Issue
Block a user