Bug 299742. Blocks that contain lines with clearance need not reflow those lines if there are no floats in the space manager yet and no lines need to be reflowed otherwise.
This commit is contained in:
Родитель
2f7cc1364e
Коммит
bde1c4256e
|
@ -680,8 +680,10 @@ nsBlockFrame::Reflow(nsPresContext* aPresContext,
|
|||
// See if it's an incremental reflow command targeted only at
|
||||
// absolute frames and we can skip ReflowDirtyLines().
|
||||
PRBool needToReflowLines = aMetrics.mComputeMEW ||
|
||||
// If we have lines with clearance, we need to check their positions
|
||||
(GetStateBits() & NS_BLOCK_HAS_CLEAR_CHILDREN) ||
|
||||
// If we have lines with clearance, and the space manager already has
|
||||
// floats, we need to check the positions of our lines with clearance
|
||||
((GetStateBits() & NS_BLOCK_HAS_CLEAR_CHILDREN) &&
|
||||
aReflowState.mSpaceManager->HasAnyFloats()) ||
|
||||
// The areas of any floats in this block or in blocks under us
|
||||
// need to be put into the space manager --- unless we are our own
|
||||
// space manager, in which case it doesn't matter.
|
||||
|
|
|
@ -281,6 +281,8 @@ public:
|
|||
*/
|
||||
void ClearRegions();
|
||||
|
||||
PRBool HasAnyFloats() { return mFrameInfoMap != nsnull; }
|
||||
|
||||
/**
|
||||
* Methods for dealing with the propagation of float damage during
|
||||
* reflow.
|
||||
|
|
Загрузка…
Ссылка в новой задаче