Bug 257612. Fix dynamic margin changes by 1) Propagate IsPreviousMarginDirty through empty lines 2) Reflow any line whose previous margin is dirty. 3) If a reflowed line could have been tested in a subsequent line's ShouldApplyTopMargin both before and after reflow, and might have been empty before or after reflow, then make the next line's previous margin dirty. 4) If reflowing a block changes its carried-out margin, then mark the next line's previous margin dirty. r+sr=dbaron

This commit is contained in:
roc+@cs.cmu.edu
2004-09-18 14:39:07 +00:00
parent a1cad060b1
commit bcd5829bb7
8 changed files with 98 additions and 56 deletions

View File

@@ -79,6 +79,17 @@ struct nsCollapsingMargin {
{
}
PRBool operator==(const nsCollapsingMargin& aOther)
{
return mMostPos == aOther.mMostPos &&
mMostNeg == aOther.mMostNeg;
}
PRBool operator!=(const nsCollapsingMargin& aOther)
{
return !(*this == aOther);
}
nsCollapsingMargin& operator=(const nsCollapsingMargin& aOther)
{
mMostPos = aOther.mMostPos;