Issue #1308 - Create nsDisplayTableBackgroundColor to avoid display

list collisions when processing the background color of a table.

This is effectively #146 Part 3c to go along with the other 2 there.

This resolves #1308.
This commit is contained in:
wolfbeast 2019-12-01 06:20:05 +01:00 • committed by Roy Tam
commit 75d291480c
2 changed files with 37 additions and 3 deletions

View file

@ -3015,6 +3015,27 @@ protected:
mozilla::gfx::Color mColor;
};
class nsDisplayTableBackgroundColor : public nsDisplayBackgroundColor
{
public:
nsDisplayTableBackgroundColor(nsDisplayListBuilder* aBuilder,
nsIFrame* aFrame,
const nsRect& aBackgroundRect,
const nsStyleBackground* aBackgroundStyle,
nscolor aColor,
nsIFrame* aAncestorFrame)
: nsDisplayBackgroundColor(aBuilder, aFrame, aBackgroundRect, aBackgroundStyle, aColor)
, mTableType(GetTableTypeFromFrame(aAncestorFrame))
{ }
virtual uint32_t GetPerFrameKey() override {
return (static_cast<uint8_t>(mTableType) << nsDisplayItem::TYPE_BITS) |
nsDisplayItem::GetPerFrameKey();
}
protected:
TableType mTableType;
};
class nsDisplayClearBackground : public nsDisplayItem
{
public: