nsBlockReflowState::mLastFloaterY isn't sufficient to enforce that a float can't
be above an earlier float. I'll attach a testcase to show this. It needs to be
on the space manager.
Created attachment 116872 [details]
Created attachment 116876 [details] [diff] [review]
This fixes this bug and bug 177331.
Note that this patch also includes the patch for bug 115153, simply because I
haven't checked it in yet.
Comment on attachment 116876 [details] [diff] [review]
I dislike #if 0. Is there a good reason to leave this in?
I'm not really sure. nsSpaceManager was originally written to be rather
general, and I've already polluted it with a good bit of
block-specific/float-specific stuff, but I think it really needs to go more in
that direction (see bug 191448) and, furthermore, that we're unlikely to need
the code for anything other than floats. So I guess I'm inclined to just remove
it if you like that idea as well. (cc:ing kin if he wants to chime in as well.)
I can't think of anything that we're going to need "space management" for beyond
floats, at least for the forseeable future. (I can imagine at some point we
might want support for positioned elements that siblings flow around, but you
can't even do that in CSS3 ... right?)
Even if we could forsee a potential broader use, it's probably better to get
floats working well and then figure out how to extend the code later.
Created attachment 116883 [details] [diff] [review]
patch with removal instead of #if 0
Ran the regression tests. Saw only noise. Will add attachment 116872 [details] to the
block/bugs regression tests.
Fix checked in to trunk, 2003-03-11 15:56 PST.