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