mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07: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
cfdb6229fe
commit
1f1ec2ea0f
@ -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