summaryrefslogtreecommitdiffstats
path: root/layout/forms/nsFieldSetFrame.cpp
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-05-10 15:02:59 +0200
committerGitHub <noreply@github.com>2020-05-10 15:02:59 +0200
commit221627575b56e8bb85e8329400da99138f2f67c1 (patch)
tree28b0142ae0eedc45e992bb7bacafdc3dba7a15af /layout/forms/nsFieldSetFrame.cpp
parent1659e69dfb075975f366b1e2dbfa145febb2094f (diff)
parentf9047ff63de90e8c0242a5e7170a8c70f93f99b1 (diff)
downloadUXP-221627575b56e8bb85e8329400da99138f2f67c1.tar
UXP-221627575b56e8bb85e8329400da99138f2f67c1.tar.gz
UXP-221627575b56e8bb85e8329400da99138f2f67c1.tar.lz
UXP-221627575b56e8bb85e8329400da99138f2f67c1.tar.xz
UXP-221627575b56e8bb85e8329400da99138f2f67c1.zip
Merge pull request #1537 from win7-7/column-backgrounds-pr-2
Better way to create display items for column backgrounds
Diffstat (limited to 'layout/forms/nsFieldSetFrame.cpp')
-rw-r--r--layout/forms/nsFieldSetFrame.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/layout/forms/nsFieldSetFrame.cpp b/layout/forms/nsFieldSetFrame.cpp
index fc9f0571b..a5177560d 100644
--- a/layout/forms/nsFieldSetFrame.cpp
+++ b/layout/forms/nsFieldSetFrame.cpp
@@ -153,7 +153,6 @@ nsDisplayFieldSetBorderBackground::ComputeInvalidationRegion(nsDisplayListBuilde
void
nsFieldSetFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
- const nsRect& aDirtyRect,
const nsDisplayListSet& aLists) {
// Paint our background and border in a special way.
// REVIEW: We don't really need to check frame emptiness here; if it's empty,
@@ -166,9 +165,11 @@ nsFieldSetFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
nsDisplayBoxShadowOuter(aBuilder, this));
}
+ const nsRect rect =
+ VisualBorderRectRelativeToSelf() + aBuilder->ToReferenceFrame(this);
+
nsDisplayBackgroundImage::AppendBackgroundItemsToTop(
- aBuilder, this, VisualBorderRectRelativeToSelf(),
- aLists.BorderBackground(),
+ aBuilder, this, rect, aLists.BorderBackground(),
/* aAllowWillPaintBorderOptimization = */ false);
aLists.BorderBackground()->AppendNewToTop(new (aBuilder)
@@ -180,10 +181,10 @@ nsFieldSetFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
}
if (GetPrevInFlow()) {
- DisplayOverflowContainers(aBuilder, aDirtyRect, aLists);
+ DisplayOverflowContainers(aBuilder, aLists);
}
- nsDisplayListCollection contentDisplayItems;
+ nsDisplayListCollection contentDisplayItems(aBuilder);
if (nsIFrame* inner = GetInner()) {
// Collect the inner frame's display items into their own collection.
// We need to be calling BuildDisplayList on it before the legend in
@@ -191,13 +192,13 @@ nsFieldSetFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
// legend. However, we want the inner frame's display items to be
// after the legend's display items in z-order, so we need to save them
// and append them later.
- BuildDisplayListForChild(aBuilder, inner, aDirtyRect, contentDisplayItems);
+ BuildDisplayListForChild(aBuilder, inner, contentDisplayItems);
}
if (nsIFrame* legend = GetLegend()) {
// The legend's background goes on our BlockBorderBackgrounds list because
// it's a block child.
nsDisplayListSet set(aLists, aLists.BlockBorderBackgrounds());
- BuildDisplayListForChild(aBuilder, legend, aDirtyRect, set);
+ BuildDisplayListForChild(aBuilder, legend, set);
}
// Put the inner frame's display items on the master list. Note that this
// moves its border/background display items to our BorderBackground() list,