mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-18 13:17:29 +09:00
Issue #1355 - Make addition of cell border display items depend on
whether they should be drawn. This reduces the size of display lists for tables by only adding display list items that are actually going to be visibly drawn, which will help overall performance of table drawing.
This commit is contained in:
parent
4f0a0c4606
commit
1069ed9273
2 changed files with 112 additions and 4 deletions
|
|
@ -761,6 +761,13 @@ public:
|
|||
bool NeedToCollapse() const;
|
||||
void SetNeedToCollapse(bool aValue);
|
||||
|
||||
bool NeedToCalcHasBCBorders() const;
|
||||
void SetNeedToCalcHasBCBorders(bool aValue);
|
||||
|
||||
void CalcHasBCBorders();
|
||||
bool HasBCBorders();
|
||||
void SetHasBCBorders(bool aValue);
|
||||
|
||||
/** The GeometryDirty bit is similar to the NS_FRAME_IS_DIRTY frame
|
||||
* state bit, which implies that all descendants are dirty. The
|
||||
* GeometryDirty still implies that all the parts of the table are
|
||||
|
|
@ -870,6 +877,8 @@ protected:
|
|||
uint32_t mIStartContBCBorder:8;
|
||||
uint32_t mNeedToCollapse:1; // rows, cols that have visibility:collapse need to be collapsed
|
||||
uint32_t mResizedColumns:1; // have we resized columns since last reflow?
|
||||
uint32_t mNeedToCalcHasBCBorders:1;
|
||||
uint32_t mHasBCBorders:1;
|
||||
} mBits;
|
||||
|
||||
nsTableCellMap* mCellMap; // maintains the relationships between rows, cols, and cells
|
||||
|
|
@ -965,6 +974,30 @@ inline void nsTableFrame::SetNeedToCalcBCBorders(bool aValue)
|
|||
mBits.mNeedToCalcBCBorders = (unsigned)aValue;
|
||||
}
|
||||
|
||||
inline bool nsTableFrame::NeedToCalcHasBCBorders() const
|
||||
{
|
||||
return (bool)mBits.mNeedToCalcHasBCBorders;
|
||||
}
|
||||
|
||||
inline void nsTableFrame::SetNeedToCalcHasBCBorders(bool aValue)
|
||||
{
|
||||
mBits.mNeedToCalcHasBCBorders = (unsigned)aValue;
|
||||
}
|
||||
|
||||
inline bool nsTableFrame::HasBCBorders()
|
||||
{
|
||||
if (NeedToCalcHasBCBorders()) {
|
||||
CalcHasBCBorders();
|
||||
SetNeedToCalcHasBCBorders(false);
|
||||
}
|
||||
return (bool)mBits.mHasBCBorders;
|
||||
}
|
||||
|
||||
inline void nsTableFrame::SetHasBCBorders(bool aValue)
|
||||
{
|
||||
mBits.mHasBCBorders = (unsigned)aValue;
|
||||
}
|
||||
|
||||
inline nscoord
|
||||
nsTableFrame::GetContinuousIStartBCBorderWidth() const
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue