Bug 384762: Negative margin + clear broken. r+sr=dbaron

This commit is contained in:
sharparrow1@yahoo.com 2007-07-20 13:05:02 -07:00
parent 97ed6966dd
commit 4480ed2810

View File

@ -114,8 +114,8 @@ nsSpaceManager::nsSpaceManager(nsIPresShell* aPresShell, nsIFrame* aFrame)
mFloatDamage(PSArenaAllocCB, PSArenaFreeCB, aPresShell), mFloatDamage(PSArenaAllocCB, PSArenaFreeCB, aPresShell),
mHaveCachedLeftYMost(PR_TRUE), mHaveCachedLeftYMost(PR_TRUE),
mHaveCachedRightYMost(PR_TRUE), mHaveCachedRightYMost(PR_TRUE),
mMaximalLeftYMost(0), mMaximalLeftYMost(nscoord_MIN),
mMaximalRightYMost(0), mMaximalRightYMost(nscoord_MIN),
mCachedBandPosition(nsnull) mCachedBandPosition(nsnull)
{ {
MOZ_COUNT_CTOR(nsSpaceManager); MOZ_COUNT_CTOR(nsSpaceManager);
@ -1039,7 +1039,7 @@ nsSpaceManager::ClearRegions()
mBandList.Clear(); mBandList.Clear();
mLowestTop = NSCOORD_MIN; mLowestTop = NSCOORD_MIN;
mHaveCachedLeftYMost = mHaveCachedRightYMost = PR_TRUE; mHaveCachedLeftYMost = mHaveCachedRightYMost = PR_TRUE;
mMaximalLeftYMost = mMaximalRightYMost = 0; mMaximalLeftYMost = mMaximalRightYMost = nscoord_MIN;
} }
void void
@ -1283,8 +1283,8 @@ nsSpaceManager::ClearFloats(nscoord aY, PRUint8 aBreakType)
(!mHaveCachedRightYMost && aBreakType != NS_STYLE_CLEAR_LEFT)) { (!mHaveCachedRightYMost && aBreakType != NS_STYLE_CLEAR_LEFT)) {
// Recover our maximal YMost values. Might need both if this is a // Recover our maximal YMost values. Might need both if this is a
// NS_STYLE_CLEAR_LEFT_AND_RIGHT // NS_STYLE_CLEAR_LEFT_AND_RIGHT
nscoord maximalLeftYMost = mHaveCachedLeftYMost ? mMaximalLeftYMost : 0; nscoord maximalLeftYMost = mHaveCachedLeftYMost ? mMaximalLeftYMost : nscoord_MIN;
nscoord maximalRightYMost = mHaveCachedRightYMost ? mMaximalRightYMost : 0; nscoord maximalRightYMost = mHaveCachedRightYMost ? mMaximalRightYMost : nscoord_MIN;
// Optimize for most floats not being near the bottom // Optimize for most floats not being near the bottom
for (FrameInfo *frame = mFrameInfoMap; frame; frame = frame->mNext) { for (FrameInfo *frame = mFrameInfoMap; frame; frame = frame->mNext) {