diff options
Diffstat (limited to 'layout/generic/nsSimplePageSequenceFrame.cpp')
-rw-r--r-- | layout/generic/nsSimplePageSequenceFrame.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/layout/generic/nsSimplePageSequenceFrame.cpp b/layout/generic/nsSimplePageSequenceFrame.cpp index 2e74afc3b..6dcb6ccc1 100644 --- a/layout/generic/nsSimplePageSequenceFrame.cpp +++ b/layout/generic/nsSimplePageSequenceFrame.cpp @@ -808,7 +808,6 @@ ComputePageSequenceTransform(nsIFrame* aFrame, float aAppUnitsPerPixel) void nsSimplePageSequenceFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, - const nsRect& aDirtyRect, const nsDisplayListSet& aLists) { DisplayBorderBackgroundOutline(aBuilder, aLists); @@ -822,13 +821,17 @@ nsSimplePageSequenceFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, clipState.Clear(); nsIFrame* child = PrincipalChildList().FirstChild(); - nsRect dirty = aDirtyRect; - dirty.ScaleInverseRoundOut(PresContext()->GetPrintPreviewScale()); + nsRect visible = aBuilder->GetVisibleRect(); + visible.ScaleInverseRoundOut(PresContext()->GetPrintPreviewScale()); while (child) { - if (child->GetVisualOverflowRectRelativeToParent().Intersects(dirty)) { - child->BuildDisplayListForStackingContext(aBuilder, - dirty - child->GetPosition(), &content); + if (child->GetVisualOverflowRectRelativeToParent().Intersects(visible)) { + nsDisplayListBuilder::AutoBuildingDisplayList + buildingForChild(aBuilder, child, + visible - child->GetPosition(), + visible - child->GetPosition(), + aBuilder->IsAtRootOfPseudoStackingContext()); + child->BuildDisplayListForStackingContext(aBuilder, &content); aBuilder->ResetMarkedFramesForDisplayList(); } child = child->GetNextSibling(); |