Commit Graph

604 Commits

Author SHA1 Message Date
Robert O'Callahan
a7b4f1246b Bug 641426. Part 5: Avoid operator== where possible to distinguish between 'equal edges' and 'equal areas' for rectangles. r=dbaron,sr=cjones 2011-04-19 15:07:23 +12:00
Robert O'Callahan
f7da8bd2c2 Bug 594333. Invalidate frame subtree (including layers) when moving a float. r=dbaron 2010-12-20 14:37:43 +13:00
L. David Baron
43b13a4dd1 Reflow floating ::first-letter before deciding where to place the float, since we need to reflow it to learn its width. (Bug 594303) r=roc a2.0=blocking:betaN 2010-10-06 21:25:47 -07:00
L. David Baron
3ab4906eba Convert nsBlockReflowState::mFloatCombinedArea and part of nsBlockFrame to split overflow areas. (Bug 542595, patch 9) r=roc a2.0=blocking2.0:beta8 2010-10-06 21:25:45 -07:00
L. David Baron
57f05d17a4 Don't push floats past break due to total lack of available height when we're required to place something. (Bug 586973) r=roc a2.0=blocking 2010-08-19 09:38:00 -04:00
L. David Baron
8d6efcd3de Split floats when they are overflow-incomplete. (Bug 585598) r=roc a2.0=blocking 2010-08-19 09:38:00 -04:00
fantasai
d65a7e96aa Change coordinate system in the float manager from content box (most of the time, but sometimes border box) to always border box. (Bug 551425) r=dbaron a2.0=blocking+ 2010-08-11 12:32:53 -07:00
L. David Baron
7afdbd9a59 Rename float continuations to pushed floats. (Bug 563584, patch 33) r=roc
This patch was generated with the following sed commands on layout/generic/*.{h,cpp}: 's/FLOAT_CONTINUATION/PUSHED_FLOAT/g;s/FloatContinuation/PushedFloat/g;s/float continuation/pushed float/g' plus whitespace fixup where the frame state bits are defined.
2010-08-05 21:59:20 -07:00
L. David Baron
051d2eec64 Don't force availableHeight to be nonnegative, because doing so means that we'll place zero height blocks (including their non-zero-height contents) at the bottom of a page when there's not room (see nsHTMLReflowState::SetTruncated). (Bug 563584, patch 32) r=roc 2010-08-05 21:59:20 -07:00
L. David Baron
b479bd2afc Don't split floats when we're not paginating. (Bug 563584, patch 26) Fixes assertion on layout/generic/crashtests/461294-1.html . r=roc 2010-08-05 21:59:20 -07:00
L. David Baron
0d14c6f6b1 In a constrained height situation, we need to reflow anything with floats. (Bug 563584, patch 25) Fixes assertion on layout/generic/crashtests/408883-1.html . r=roc 2010-08-05 21:59:20 -07:00
L. David Baron
e8ca3f4e21 Add bit to lines indicating that they may have a placeholder for a float that was pushed to the next line (and bump the child count up to 32 bits). (Bug 563584, patch 24) r=roc 2010-08-05 21:59:20 -07:00
L. David Baron
aebe67cb51 Pass correct *remaining* height to float manager, rather than the whole height of the content area. (Bug 563584, patch 22) r=roc 2010-08-05 21:59:20 -07:00
L. David Baron
729eb4ac32 Remove aReflowStatus parameters made unnecessary by previous patch. (Bug 563584, patch 20) r=roc 2010-08-05 21:59:20 -07:00
L. David Baron
a918ee7979 Do the same for PlaceBelowCurrentLineFloats: don't propagate the truncation of a float into the line's reflow status. (Bug 563584, patch 18) r=roc 2010-08-05 21:59:20 -07:00
L. David Baron
f5631fb91d Don't propagate the float's reflow status through places that expect an inline's reflow status, to avoid the assertion for which bug 563584 was filed. This separates pushing of floats from pushing of lines, and allows first-in-flow floats to be pushed to the next page without their associated line. (Bug 563584, patch 17) r=roc 2010-08-05 21:59:19 -07:00
L. David Baron
7811dafa89 Steal float back before reflowing it, in order to allow first continuation of a float to be pushed to the next page. (Bug 563584, patch 15) r=roc 2010-08-05 21:59:19 -07:00
L. David Baron
5e7f097aa8 nsBlockFrame::ReflowFloatContinuations doesn't need anything in AddFloat other than FlowAndPlaceFloat. (Bug 563584, patch 14) r=roc 2010-08-05 21:59:19 -07:00
L. David Baron
83f95abb0c Manage float continuations to-be-pulled by the next-in-flow better by keeping them in a separate frame list until they're actually pulled. (Bug 563584, patch 13) r=roc 2010-08-05 21:59:19 -07:00
L. David Baron
62189e853d Don't try to clear pushed floats when computing the final size of blocks. Fixes scrollbar on layout/reftests/bugs/563584-6-columns.html . (Bug 563584, patch 11) r=roc 2010-08-05 21:59:19 -07:00
L. David Baron
87bff25504 Use an AutoRestore to restore mY in nsBlockReflowState::FlowAndPlaceFloat. (Bug 563584, patch 7) r=roc 2010-08-05 21:59:19 -07:00
L. David Baron
8b608af7e0 When we're in columns (and therefore not splitting floats), push floats that don't fit to the next column. (Bug 563584, patch 6) r=roc 2010-08-05 21:59:19 -07:00
L. David Baron
5dbb4fc493 Replace force-fit with setting mIsTopOfPage correctly. (Bug 563584, patch 5) r=roc 2010-08-05 21:59:19 -07:00
L. David Baron
91606392a2 Make nsBlockReflowState::FlowAndPlaceFloat reflow the float after computing its vertical position, so we know how much height is actually available. (Bug 563584, patch 4) r=roc
Test coverage for this is in the future patch "Add reftests for bug 563584.".
2010-08-05 21:59:18 -07:00
L. David Baron
4af0ee515d Most of CanPlaceFloat is unnecessary given the float placement rules (in particular, that the top of a float cannot be higher than the top of any prior left or right float) and the fact that we now split floats. (Bug 563584, patch 3) r=roc 2010-08-05 21:59:18 -07:00
L. David Baron
bf246f7401 Remove aForceFit/aRelaxHeightConstraint concept from float reflow, since we now split floats rather than push them to the next page (and correct propagation of nsHTMLReflowState::mFlags::mIsTopOfPage will force fitting when we need to). (Bug 563584, patch 2) r=roc 2010-08-05 21:59:18 -07:00
L. David Baron
367e34d52e Fix assertion about float manager state by restoring old float manager state when we place a float and then cancel that placement. (Bug 563584, patch 1) r=roc 2010-08-05 21:59:18 -07:00
L. David Baron
238beaa031 Subtract the correct border+padding. (Bug 546048) r=roc 2010-04-04 14:46:15 -07:00
Robert O'Callahan
0fd1837981 Bug 551660. Switch layout code from using nsPropertyTable to FramePropertyTable. r=mats,sr=dbaron 2010-03-29 14:46:55 +13:00
Daniel Holbert
db55bfe54a comment-only typo fix: s/its/it's/ for contractions in nsBlockReflowState.cpp 2010-01-08 16:38:08 -08:00
L. David Baron
7f2dd889cf Make unconstrained width assertions into warnings because we can hit them when we clamp really large widths. (Bug 525100) r=roc 2009-10-28 20:22:28 -07:00
Mats Palmgren
dea07412a1 Replace PR_MIN/PR_MAX with NS_MIN/NS_MAX. b=512106 r=roc 2009-09-16 17:01:36 +02:00
Daniel Holbert
f690307cc5 Bug 503961: Initialize block-reflow-state's nsOverflowContinuationTracker a little later, so that it doesn't end up with stale overflow-list pointers. r=fantasai r=roc 2009-09-13 17:26:01 -07:00
fantasai
1f4c53a304 Bug 492627 - Remove Placeholder Continuations [Part V: Reimplement float splitting without placeholder continuations] r=roc 2009-08-31 11:25:36 -07:00
fantasai
b2ea1d69bb Bug 492627 - Remove Placeholder Continuations [Part IV: Switch float layout APIs to pass float directly, without placeholder] r=roc 2009-08-31 11:25:35 -07:00
fantasai
87bc18b4e2 Bug 492627 - Remove Placeholder Continuations [Part III: Remove current float-splitting code.] r=roc 2009-08-31 11:25:35 -07:00
Ehsan Akhgari
73d238f7a1 Fix the build bustage from bug 499377 2009-07-15 12:10:26 +04:30
fantasai
1816bcdd46 Bug 499377 - Store float region on frame r+sr=roc 2009-07-14 22:19:31 -07:00
L. David Baron
803e2f944a Fix bug 25888 for inline frames other than bullets: redo line reflow when the line's height pushes it into the way of other floats. (Bug 25888) r+sr=roc 2009-05-20 07:21:34 -04:00
L. David Baron
26f337c611 Implement a method on the float manager to get the largest width available within a height (rather than just at a point). (Bug 25888) r+sr=roc 2009-05-20 07:21:34 -04:00
L. David Baron
4c34a1aff5 Merge InitFloat into AddFloat (on nsLineLayout and nsBlockReflowState). (Bug 25888) r+sr=roc 2009-05-20 07:21:34 -04:00
Karl Tomlinson
3bbadcfb42 b=481751 block-height line-height for text input and strut baseline for textarea r=bz,sr=dbaron
--HG--
extra : rebase_source : 1241360066ea9387d15c71936da9468399240640
2009-05-19 10:13:12 +12:00
Arpad Borsos
37bfad5344 Bug 492937 - kill nsLineLayout::mPlacedFloats and related code; r+sr=roc 2009-05-14 11:31:35 +02:00
L. David Baron
0000423887 Use a struct containing a rectangle and a boolean for float available space rather than passing them around separately. (Bug 25888) r+sr=roc 2009-04-08 13:52:37 -07:00
L. David Baron
9acfc6bd28 Complete switch away from nsBlockReflowState::mAvailSpaceRect by removing the old members. (Bug 25888) r+sr=roc 2009-04-08 13:52:37 -07:00
L. David Baron
f1e122cbd0 Switch away from nsBlockReflowState::mAvailSpaceRect for reflow of child blocks. (Bug 25888) r+sr=roc 2009-04-08 13:52:37 -07:00
L. David Baron
53fb256319 Switch away from nsBlockReflowState::mAvailSpaceRect for reflow of child floats. (Bug 25888) r+sr=roc 2009-04-08 13:52:36 -07:00
L. David Baron
a44af1082d Switch away from nsBlockReflowState::mAvailSpaceRect in bullet reflow, and simultaneously refix bug 427370 in a way that also fixes bug 428810. (Bug 25888) r+sr=roc 2009-04-08 13:52:36 -07:00
L. David Baron
20dc1bbfd1 Switch away from nsBlockReflowState::mAvailSpaceRect in nsBlockReflowState::AddFloat. (Bug 25888) r+sr=roc 2009-04-08 13:52:36 -07:00
L. David Baron
ad59611052 Begin removing mAvailSpaceRect and mBandHasFloats from nsBlockReflowState by converting the current state-mutation GetAvailableSpace to a getter GetFloatAvailableSpace to replace it, and reimplementing the state mutation in terms of the getter. (Bug 25888) r+sr=roc 2009-04-08 13:52:36 -07:00