From c92c1f3024341586170a960a3ec38e0d19eb3711 Mon Sep 17 00:00:00 2001 From: "waterson%netscape.com" Date: Wed, 9 Jan 2002 03:01:13 +0000 Subject: [PATCH] Bug 99461 and it's ilk. Remove hack that blasts tables into the same space. r=dbaron, sr=attinasi. --- layout/generic/nsBlockFrame.cpp | 2 +- layout/generic/nsBlockReflowState.cpp | 21 +++++---------------- layout/html/base/src/nsBlockFrame.cpp | 2 +- layout/html/base/src/nsBlockReflowState.cpp | 21 +++++---------------- 4 files changed, 12 insertions(+), 34 deletions(-) diff --git a/layout/generic/nsBlockFrame.cpp b/layout/generic/nsBlockFrame.cpp index c2cf4082e9c5..a8a229088a06 100644 --- a/layout/generic/nsBlockFrame.cpp +++ b/layout/generic/nsBlockFrame.cpp @@ -1900,7 +1900,7 @@ nsBlockFrame::PrepareResizeReflow(nsBlockReflowState& aState) IndentBy(stdout, gNoiseIndent + 1); printf("skipped: line=%p next=%p %s %s %s%s%s breakType=%d xmost=%d\n", NS_STATIC_CAST(void*, line.get()), - NS_STATIC_CAST(void*, line.next().get()), + NS_STATIC_CAST(void*, (line.next() != end_lines() ? line.next().get() : nsnull)), line->IsBlock() ? "block" : "inline", "wrapping", line->HasBreak() ? "has-break " : "", diff --git a/layout/generic/nsBlockReflowState.cpp b/layout/generic/nsBlockReflowState.cpp index 174fbb4608c9..36369ec34bb6 100644 --- a/layout/generic/nsBlockReflowState.cpp +++ b/layout/generic/nsBlockReflowState.cpp @@ -831,10 +831,6 @@ nsBlockReflowState::FlowAndPlaceFloater(nsFloaterCache* aFloaterCache, // content. nscoord saveY = mY; - // Grab the compatibility mode - nsCompatibility mode; - mPresContext->GetCompatibilityMode(&mode); - nsIFrame* floater = aFloaterCache->mPlaceholder->GetOutOfFlowFrame(); // Grab the floater's display information @@ -890,18 +886,11 @@ nsBlockReflowState::FlowAndPlaceFloater(nsFloaterCache* aFloaterCache, (NS_STYLE_FLOAT_RIGHT == floaterDisplay->mFloats), "invalid float type"); - // In backwards compatibility mode, we don't bother to see if a - // floated table can ``really'' fit: in old browsers, floating - // tables are horizontally stacked regardless of available space. - // (See bug 43086 about tables vs. non-tables.) - if ((eCompatibility_NavQuirks != mode) || - (NS_STYLE_DISPLAY_TABLE != floaterDisplay->mDisplay)) { - // Can the floater fit here? - while (! CanPlaceFloater(region, floaterDisplay->mFloats)) { - // Nope. Advance to the next band. - mY += mAvailSpaceRect.height; - GetAvailableSpace(); - } + // Can the floater fit here? + while (! CanPlaceFloater(region, floaterDisplay->mFloats)) { + // Nope. Advance to the next band. + mY += mAvailSpaceRect.height; + GetAvailableSpace(); } // Assign an x and y coordinate to the floater. Note that the x,y diff --git a/layout/html/base/src/nsBlockFrame.cpp b/layout/html/base/src/nsBlockFrame.cpp index c2cf4082e9c5..a8a229088a06 100644 --- a/layout/html/base/src/nsBlockFrame.cpp +++ b/layout/html/base/src/nsBlockFrame.cpp @@ -1900,7 +1900,7 @@ nsBlockFrame::PrepareResizeReflow(nsBlockReflowState& aState) IndentBy(stdout, gNoiseIndent + 1); printf("skipped: line=%p next=%p %s %s %s%s%s breakType=%d xmost=%d\n", NS_STATIC_CAST(void*, line.get()), - NS_STATIC_CAST(void*, line.next().get()), + NS_STATIC_CAST(void*, (line.next() != end_lines() ? line.next().get() : nsnull)), line->IsBlock() ? "block" : "inline", "wrapping", line->HasBreak() ? "has-break " : "", diff --git a/layout/html/base/src/nsBlockReflowState.cpp b/layout/html/base/src/nsBlockReflowState.cpp index 174fbb4608c9..36369ec34bb6 100644 --- a/layout/html/base/src/nsBlockReflowState.cpp +++ b/layout/html/base/src/nsBlockReflowState.cpp @@ -831,10 +831,6 @@ nsBlockReflowState::FlowAndPlaceFloater(nsFloaterCache* aFloaterCache, // content. nscoord saveY = mY; - // Grab the compatibility mode - nsCompatibility mode; - mPresContext->GetCompatibilityMode(&mode); - nsIFrame* floater = aFloaterCache->mPlaceholder->GetOutOfFlowFrame(); // Grab the floater's display information @@ -890,18 +886,11 @@ nsBlockReflowState::FlowAndPlaceFloater(nsFloaterCache* aFloaterCache, (NS_STYLE_FLOAT_RIGHT == floaterDisplay->mFloats), "invalid float type"); - // In backwards compatibility mode, we don't bother to see if a - // floated table can ``really'' fit: in old browsers, floating - // tables are horizontally stacked regardless of available space. - // (See bug 43086 about tables vs. non-tables.) - if ((eCompatibility_NavQuirks != mode) || - (NS_STYLE_DISPLAY_TABLE != floaterDisplay->mDisplay)) { - // Can the floater fit here? - while (! CanPlaceFloater(region, floaterDisplay->mFloats)) { - // Nope. Advance to the next band. - mY += mAvailSpaceRect.height; - GetAvailableSpace(); - } + // Can the floater fit here? + while (! CanPlaceFloater(region, floaterDisplay->mFloats)) { + // Nope. Advance to the next band. + mY += mAvailSpaceRect.height; + GetAvailableSpace(); } // Assign an x and y coordinate to the floater. Note that the x,y