summaryrefslogtreecommitdiffstats
path: root/layout/generic/nsFrame.cpp
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2020-03-11 13:01:48 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-04-14 13:05:43 +0200
commitdb93b005f5c8ecfa601f002b207beca1e9292dd0 (patch)
tree8b67b36a11f7e2b7c2a80a7ee1d177214508c3f6 /layout/generic/nsFrame.cpp
parentd2aaa74f31cd93106790d977d424f479cee1389a (diff)
downloadUXP-db93b005f5c8ecfa601f002b207beca1e9292dd0.tar
UXP-db93b005f5c8ecfa601f002b207beca1e9292dd0.tar.gz
UXP-db93b005f5c8ecfa601f002b207beca1e9292dd0.tar.lz
UXP-db93b005f5c8ecfa601f002b207beca1e9292dd0.tar.xz
UXP-db93b005f5c8ecfa601f002b207beca1e9292dd0.zip
Issue #1480 - Skip abspos, fixed, float and placeholders for outline.
Diffstat (limited to 'layout/generic/nsFrame.cpp')
-rw-r--r--layout/generic/nsFrame.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp
index 8d4ea8754..0d0c7108c 100644
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -8447,9 +8447,13 @@ UnionBorderBoxes(nsIFrame* aFrame, bool aApplyTransform,
Maybe<nsRect> clipPropClipRect =
aFrame->GetClipPropClipRect(disp, effects, bounds.Size());
- // Iterate over all children except pop-ups.
+ // Iterate over all children except pop-ups, absolutely positioned children,
+ // fixed-positioned children and floats.
const nsIFrame::ChildListIDs skip(nsIFrame::kPopupList |
- nsIFrame::kSelectPopupList);
+ nsIFrame::kSelectPopupList |
+ nsIFrame::kAbsoluteList |
+ nsIFrame::kFixedList |
+ nsIFrame::kFloatList);
for (nsIFrame::ChildListIterator childLists(aFrame);
!childLists.IsDone(); childLists.Next()) {
if (skip.Contains(childLists.CurrentID())) {
@@ -8459,6 +8463,12 @@ UnionBorderBoxes(nsIFrame* aFrame, bool aApplyTransform,
nsFrameList children = childLists.CurrentList();
for (nsFrameList::Enumerator e(children); !e.AtEnd(); e.Next()) {
nsIFrame* child = e.get();
+
+ if (child->GetType() == nsGkAtoms::placeholderFrame) {
+ // Skip placeholders too.
+ continue;
+ }
+
// Note that passing |true| for aApplyTransform when
// child->Combines3DTransformWithAncestors() is incorrect if our
// aApplyTransform is false... but the opposite would be as