mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backed out changeset 6d2fc524e961 (bug 1022612)
This commit is contained in:
parent
2429264279
commit
f47b379c1a
@ -414,22 +414,22 @@ PruneDisplayListForExtraPage(nsDisplayListBuilder* aBuilder,
|
|||||||
aList->AppendToTop(&newList);
|
aList->AppendToTop(&newList);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static nsresult
|
||||||
BuildDisplayListForExtraPage(nsDisplayListBuilder* aBuilder,
|
BuildDisplayListForExtraPage(nsDisplayListBuilder* aBuilder,
|
||||||
nsPageFrame* aPage, nsIFrame* aExtraPage,
|
nsPageFrame* aPage, nsIFrame* aExtraPage,
|
||||||
const nsRect& aDirtyRect, nsDisplayList* aList)
|
nsDisplayList* aList)
|
||||||
{
|
{
|
||||||
// The only content in aExtraPage we care about is out-of-flow content whose
|
|
||||||
// placeholders have occurred in aPage. If
|
|
||||||
// NS_FRAME_FORCE_DISPLAY_LIST_DESCEND_INTO is not set, then aExtraPage has
|
|
||||||
// no such content.
|
|
||||||
if (!aExtraPage->HasAnyStateBits(NS_FRAME_FORCE_DISPLAY_LIST_DESCEND_INTO)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
nsDisplayList list;
|
nsDisplayList list;
|
||||||
aExtraPage->BuildDisplayListForStackingContext(aBuilder, aDirtyRect, &list);
|
// Pass an empty dirty rect since we're only interested in finding
|
||||||
|
// placeholders whose out-of-flows are in the page
|
||||||
|
// aBuilder->GetReferenceFrame(), and the paths to those placeholders
|
||||||
|
// have already been marked as NS_FRAME_FORCE_DISPLAY_LIST_DESCEND_INTO.
|
||||||
|
// Note that we should still do a prune step since we don't want to
|
||||||
|
// rely on dirty-rect checking for correctness.
|
||||||
|
aExtraPage->BuildDisplayListForStackingContext(aBuilder, nsRect(), &list);
|
||||||
PruneDisplayListForExtraPage(aBuilder, aPage, aExtraPage, &list);
|
PruneDisplayListForExtraPage(aBuilder, aPage, aExtraPage, &list);
|
||||||
aList->AppendToTop(&list);
|
aList->AppendToTop(&list);
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static nsIFrame*
|
static nsIFrame*
|
||||||
@ -506,8 +506,8 @@ nsPageFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
|||||||
clipState.Clear();
|
clipState.Clear();
|
||||||
clipState.ClipContainingBlockDescendants(clipRect, nullptr);
|
clipState.ClipContainingBlockDescendants(clipRect, nullptr);
|
||||||
|
|
||||||
nsRect dirtyRect = child->GetVisualOverflowRectRelativeToSelf();
|
child->BuildDisplayListForStackingContext(aBuilder,
|
||||||
child->BuildDisplayListForStackingContext(aBuilder, dirtyRect, &content);
|
child->GetVisualOverflowRectRelativeToSelf(), &content);
|
||||||
|
|
||||||
// We may need to paint out-of-flow frames whose placeholders are
|
// We may need to paint out-of-flow frames whose placeholders are
|
||||||
// on other pages. Add those pages to our display list. Note that
|
// on other pages. Add those pages to our display list. Note that
|
||||||
@ -518,8 +518,7 @@ nsPageFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
|||||||
// following placeholders to their out-of-flows) end up on the list.
|
// following placeholders to their out-of-flows) end up on the list.
|
||||||
nsIFrame* page = child;
|
nsIFrame* page = child;
|
||||||
while ((page = GetNextPage(page)) != nullptr) {
|
while ((page = GetNextPage(page)) != nullptr) {
|
||||||
BuildDisplayListForExtraPage(aBuilder, this, page,
|
BuildDisplayListForExtraPage(aBuilder, this, page, &content);
|
||||||
dirtyRect + child->GetOffsetTo(page), &content);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the canvas background color to the bottom of the list. This
|
// Add the canvas background color to the bottom of the list. This
|
||||||
|
Loading…
Reference in New Issue
Block a user