Skip to content

Commit

Permalink
Issue #1480 - Skip abspos, fixed, float and placeholders for outline.
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfbeast committed Mar 11, 2020
1 parent fda8403 commit 8dc5206
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions layout/generic/nsFrame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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())) {
Expand All @@ -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
Expand Down

0 comments on commit 8dc5206

Please sign in to comment.