mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 06:11:37 +00:00
Bug 1158323 - Make sure we set a base rect on document elements that have margins set. r=tn
This commit is contained in:
parent
dc74cd2fb0
commit
ca4c4fda69
@ -59,6 +59,8 @@ ChromeProcessController::InitializeRoot()
|
||||
uint32_t presShellId;
|
||||
FrameMetrics::ViewID viewId;
|
||||
if (APZCCallbackHelper::GetOrCreateScrollIdentifiers(content, &presShellId, &viewId)) {
|
||||
// Note that the base rect that goes with these margins is set in
|
||||
// nsRootBoxFrame::BuildDisplayList.
|
||||
nsLayoutUtils::SetDisplayPortMargins(content, presShell, ScreenMargin(), 0,
|
||||
nsLayoutUtils::RepaintMode::DoNotRepaint);
|
||||
}
|
||||
|
@ -179,6 +179,14 @@ nsRootBoxFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
||||
const nsRect& aDirtyRect,
|
||||
const nsDisplayListSet& aLists)
|
||||
{
|
||||
if (mContent && mContent->GetProperty(nsGkAtoms::DisplayPortMargins)) {
|
||||
// The XUL document's root element may have displayport margins set in
|
||||
// ChromeProcessController::InitializeRoot, and we should to supply the
|
||||
// base rect.
|
||||
nsRect displayPortBase = aDirtyRect.Intersect(nsRect(nsPoint(0, 0), GetSize()));
|
||||
nsLayoutUtils::SetDisplayPortBase(mContent, displayPortBase);
|
||||
}
|
||||
|
||||
// root boxes don't need a debug border/outline or a selection overlay...
|
||||
// They *may* have a background propagated to them, so force creation
|
||||
// of a background display list element.
|
||||
|
Loading…
Reference in New Issue
Block a user