Closed Bug 257216 Opened 20 years ago Closed 20 years ago

More columns-related block fixes

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: roc, Assigned: roc)

Details

Attachments

(1 file, 1 obsolete file)

I'll attach a patch, extracted from my columns work, that does a few small things:

-- Adds some needed #ifdef DEBUG code so that noisy block reflow doesn't leak
indent counts along certain control flow paths
-- Factors out the code that gets a float from its placeholder (and detects
whether the frame is in fact a float placeholder) into an nsLayoutUtils method.
It's still lame but now the lameness is confined. Use this method from a couple
of places, Collect(Overflow)Floats and nsLineLayout::ReflowFrame.
-- Fixes a bug: when a float is reflowed in a line, and the line ends up being
pushed to the overflow lines, we did not remove the float from the space
manager. This could end up giving the block an unnecessarily large height when
ComputeFinalSize checks the space manager's vertical advance. The fix removes
all overflowing floats from the space manager in BuildFloatList which is before
ComputeFinalSize. This will be even more important when we start extracting the
floats region from the space manager after reflow and apply it to impact other
columns.
-- Renamed CollectOverflowFloats to CollectFloats because I'm going to use it
for floats in normal lines in a future patch.
-- Added an important assertion to nsBlockReflowState. This might fire during
printing certain pages until I land some more changes I have, which fix float
parenting bugs when lines are pushed and pulled.
Attached patch fix (obsolete) — Splinter Review
As described
Comment on attachment 157238 [details] [diff] [review]
fix

the contents of this patch are described in the bug.
Attachment #157238 - Flags: superreview?(dbaron)
Attachment #157238 - Flags: review?(dbaron)
Hrm, there's a bunch of stuff in the space manager that assumes that regions
aren't removed.  I think you need to replace mXMost with something that actually
computes it.

With that change, rubber-stamp r+sr=dbaron on the whole patch.
Comment on attachment 157238 [details] [diff] [review]
fix

(Really, mLowestTop needs fixing too, although it may not be an issue.)  And
I've read the whole patch now -- it wasn't that big, so that is really the only
thing I have a problem with.
Attachment #157238 - Flags: superreview?(dbaron)
Attachment #157238 - Flags: superreview+
Attachment #157238 - Flags: review?(dbaron)
Attachment #157238 - Flags: review+
Attached patch OKSplinter Review
OK. I decided to partially fix the space manager so that at least XMost and
YMost work after RemoveRegions, which I renamed to RemoveTrailingRegions.
That's all we need, I think. I added comments making clear that you can't do
much after calling RemoveTrailingRegions, it's only intended to be called near
the end of the life of the space manager.
Comment on attachment 158702 [details] [diff] [review]
OK

okay, this should do it
Attachment #158702 - Flags: superreview?(dbaron)
Attachment #158702 - Flags: review?(dbaron)
Attachment #158702 - Flags: superreview?(dbaron)
Attachment #158702 - Flags: superreview+
Attachment #158702 - Flags: review?(dbaron)
Attachment #158702 - Flags: review+
checked in
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: