mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 844750 - Don't use per-display-item invalidation for table frames. r=roc
This commit is contained in:
parent
6c74aeb4d4
commit
981f3ba59b
@ -2094,11 +2094,12 @@ public:
|
||||
eXULBox = 1 << 10,
|
||||
eCanContainOverflowContainers = 1 << 11,
|
||||
eBlockFrame = 1 << 12,
|
||||
eTablePart = 1 << 13,
|
||||
// If this bit is set, the frame doesn't allow ignorable whitespace as
|
||||
// children. For example, the whitespace between <table>\n<tr>\n<td>
|
||||
// will be excluded during the construction of children.
|
||||
eExcludesIgnorableWhitespace = 1 << 13,
|
||||
eSupportsCSSTransforms = 1 << 14,
|
||||
eExcludesIgnorableWhitespace = 1 << 14,
|
||||
eSupportsCSSTransforms = 1 << 15,
|
||||
|
||||
// These are to allow nsFrame::Init to assert that IsFrameOfType
|
||||
// implementations all call the base class method. They are only
|
||||
|
@ -342,7 +342,14 @@ ImageLoader::DoRedraw(FrameSet* aFrameSet)
|
||||
nsIFrame* frame = aFrameSet->ElementAt(i);
|
||||
|
||||
if (frame->StyleVisibility()->IsVisible()) {
|
||||
FrameLayerBuilder::IterateRetainedDataFor(frame, InvalidateImagesCallback);
|
||||
if (frame->IsFrameOfType(nsIFrame::eTablePart)) {
|
||||
// Tables don't necessarily build border/background display items
|
||||
// for the individual table part frames, so IterateRetainedDataFor
|
||||
// might not find the right display item.
|
||||
frame->InvalidateFrame();
|
||||
} else {
|
||||
FrameLayerBuilder::IterateRetainedDataFor(frame, InvalidateImagesCallback);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -210,6 +210,11 @@ public:
|
||||
nsPoint aPt);
|
||||
|
||||
virtual bool UpdateOverflow();
|
||||
|
||||
virtual bool IsFrameOfType(uint32_t aFlags) const
|
||||
{
|
||||
return nsContainerFrame::IsFrameOfType(aFlags & ~(nsIFrame::eTablePart));
|
||||
}
|
||||
|
||||
virtual void InvalidateFrame(uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
virtual void InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
|
@ -263,6 +263,11 @@ public:
|
||||
nscoord GetFinalWidth() {
|
||||
return mFinalWidth;
|
||||
}
|
||||
|
||||
virtual bool IsFrameOfType(uint32_t aFlags) const
|
||||
{
|
||||
return nsSplittableFrame::IsFrameOfType(aFlags & ~(nsIFrame::eTablePart));
|
||||
}
|
||||
|
||||
virtual void InvalidateFrame(uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
virtual void InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
|
@ -196,6 +196,11 @@ public:
|
||||
*/
|
||||
void SetContinuousBCBorderWidth(uint8_t aForSide,
|
||||
BCPixelSize aPixelValue);
|
||||
|
||||
virtual bool IsFrameOfType(uint32_t aFlags) const
|
||||
{
|
||||
return nsContainerFrame::IsFrameOfType(aFlags & ~(nsIFrame::eTablePart));
|
||||
}
|
||||
|
||||
virtual void InvalidateFrame(uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
virtual void InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
|
@ -224,6 +224,11 @@ public:
|
||||
void SetContinuousBCBorderWidth(uint8_t aForSide,
|
||||
BCPixelSize aPixelValue);
|
||||
|
||||
virtual bool IsFrameOfType(uint32_t aFlags) const
|
||||
{
|
||||
return nsContainerFrame::IsFrameOfType(aFlags & ~(nsIFrame::eTablePart));
|
||||
}
|
||||
|
||||
virtual void InvalidateFrame(uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
virtual void InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
virtual void InvalidateFrameForRemoval() MOZ_OVERRIDE { InvalidateFrameSubtree(); }
|
||||
|
@ -325,6 +325,11 @@ public:
|
||||
|
||||
virtual nsILineIterator* GetLineIterator() { return this; }
|
||||
|
||||
virtual bool IsFrameOfType(uint32_t aFlags) const
|
||||
{
|
||||
return nsContainerFrame::IsFrameOfType(aFlags & ~(nsIFrame::eTablePart));
|
||||
}
|
||||
|
||||
virtual void InvalidateFrame(uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
virtual void InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey = 0) MOZ_OVERRIDE;
|
||||
virtual void InvalidateFrameForRemoval() MOZ_OVERRIDE { InvalidateFrameSubtree(); }
|
||||
|
Loading…
Reference in New Issue
Block a user