482 Commits

Author SHA1 Message Date
dholbert%cs.stanford.edu
e0ca82aa1a 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 a=dveditz
git-svn-id: svn://10.0.0.236/trunk@258412 18797224-902f-48f8-a5cc-f745e15eee43
2009-09-17 19:06:27 +00:00
dbaron%dbaron.org
c89087138e Compute widths for replaced block clearing past floats once we're at the correct vertical position. b=430813 r+sr=roc a=schrep
git-svn-id: svn://10.0.0.236/trunk@251144 18797224-902f-48f8-a5cc-f745e15eee43
2008-05-03 23:34:08 +00:00
dbaron%dbaron.org
d5574dc143 Fix bug 427129 / 377664: When displacing blocks that don't interact with floats around floats, displace the border box rather than the margin box. Fix bug 427782: Simultaneously, only displace when the width actually won't go down to an amount that fits (i.e., if it will go to an amount smaller than the intrinsic minimum width, let it). b=427129 r+sr=roc a=schrep
git-svn-id: svn://10.0.0.236/trunk@250238 18797224-902f-48f8-a5cc-f745e15eee43
2008-04-15 01:06:51 +00:00
mats.palmgren%bredband.net
2af0d1e32c The position of an outside bullet should not be affected by floats inside the principal block (this fixes most cases). b=427370 r+sr=dbaron a1.9=beltzner
git-svn-id: svn://10.0.0.236/trunk@250155 18797224-902f-48f8-a5cc-f745e15eee43
2008-04-13 17:43:13 +00:00
dbaron%dbaron.org
35c09e2930 Stop using -moz-float-edge for list items, but offset the bullet position in the presence of floats. b=413840 (and numerous others) r+sr=roc a=blocking1.9+
git-svn-id: svn://10.0.0.236/trunk@245373 18797224-902f-48f8-a5cc-f745e15eee43
2008-02-10 21:50:05 +00:00
dbaron%dbaron.org
34753d1cd7 Push scrollframes, tables, and other blocks that don't participate in float formatting down when they don't fit next to floats. b=134706,349255 r+sr=roc a=blocking1.9+
git-svn-id: svn://10.0.0.236/trunk@244318 18797224-902f-48f8-a5cc-f745e15eee43
2008-01-29 07:41:28 +00:00
tglek%mozilla.com
1b2f5bc689 Clean up prbool misuse in layout. bug 398312, r+sr+a=dbaron
git-svn-id: svn://10.0.0.236/trunk@237496 18797224-902f-48f8-a5cc-f745e15eee43
2007-10-10 00:00:06 +00:00
roc+%cs.cmu.edu
cb8c6e3a11 Bug 379349. Add support for 'overflow containers' --- special frame continuations that do not map any content of their own, but serve only as containers for laying out children that overflowed their parents' content height. patch by fantasai, r+sr=eli,roc
git-svn-id: svn://10.0.0.236/trunk@231012 18797224-902f-48f8-a5cc-f745e15eee43
2007-07-26 04:03:31 +00:00
sharparrow1%yahoo.com
1fefb19635 Bug 386142: fantasai's li'l Need More Comments bug. Patch by fantasai, r+sr=roc
git-svn-id: svn://10.0.0.236/trunk@229291 18797224-902f-48f8-a5cc-f745e15eee43
2007-07-03 22:49:01 +00:00
bzbarsky%mit.edu
ee4ee8ea0b Make blocks whose ancestors are not blocks have the NS_BLOCK_MARGIN_ROOT and
NS_BLOCK_SPACE_MGR bits as necessary.  Bug 354600, r+sr=roc


git-svn-id: svn://10.0.0.236/trunk@220533 18797224-902f-48f8-a5cc-f745e15eee43
2007-02-18 23:53:25 +00:00
mats.palmgren%bredband.net
14e7266121 Rename IsSplittable() to GetSplittableType(). b=349973 r+sr=bzbarsky
git-svn-id: svn://10.0.0.236/trunk@217227 18797224-902f-48f8-a5cc-f745e15eee43
2006-12-20 03:52:34 +00:00
roc+%cs.cmu.edu
08f7e2bd9a Bug 359371. Don't leak overflowing frames if a bug occurs and we still have overflowing frames in an unconstrained reflow situation. r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@216866 18797224-902f-48f8-a5cc-f745e15eee43
2006-12-12 01:06:23 +00:00
dbaron%dbaron.org
1ca9f3f372 Bug 300030: Move intrinsic width computation out of nsIFrame::Reflow and into its own methods on nsIFrame. Replace reflow reasons, types, and commands with dirty bits/notifications. Thanks to bzbarsky for almost all of the HTML form controls (mozilla/layout/forms) changes, and many others for help testing and patching. For detailed commit logs, see REFLOW_YYYYMMDD_BRANCH, where YYYYMMDD is one of 20061031, 20060830, 20060603, 20060302, 20060119, 20051011, 20050804, 20050429, 20050315, 20050111, and 20041213.
git-svn-id: svn://10.0.0.236/trunk@216738 18797224-902f-48f8-a5cc-f745e15eee43
2006-12-08 05:38:33 +00:00
roc+%cs.cmu.edu
b1ae3cf7e7 relanding fix for bug 317278 :-(
git-svn-id: svn://10.0.0.236/trunk@201179 18797224-902f-48f8-a5cc-f745e15eee43
2006-06-29 01:19:48 +00:00
roc+%cs.cmu.edu
bd9175c940 Bug 237085. Move string subdivision code to gfx so we can efficiently make it metrics-dependent. r=smontagu,sr=rbs
git-svn-id: svn://10.0.0.236/trunk@200963 18797224-902f-48f8-a5cc-f745e15eee43
2006-06-26 22:18:23 +00:00
roc+%cs.cmu.edu
d643001e93 Bug 317278. Reland patch that reflows lines again if we detect some already-placed floats need to move to the next line. This time, with changes to nsSpaceManager's PushState/PopState infrastructure so that dynamic allocations are never required; the saved state is always stack-allocated by callers. r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@200367 18797224-902f-48f8-a5cc-f745e15eee43
2006-06-19 23:06:59 +00:00
roc+%cs.cmu.edu
fd309fa894 Backing out patch for 317278 due to Tp regression
git-svn-id: svn://10.0.0.236/trunk@200257 18797224-902f-48f8-a5cc-f745e15eee43
2006-06-19 01:29:07 +00:00
roc+%cs.cmu.edu
6d142c7e60 Bug 317278. In some cases we push float placeholders from one line to the next after we have already placed their floats on the line. In such situations, reset the space manager and force the line to reflow again so those floats don't get placed. r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@200256 18797224-902f-48f8-a5cc-f745e15eee43
2006-06-19 00:02:49 +00:00
roc+%cs.cmu.edu
cbc5855a71 Bug 282173. Remove BuildFloatList. r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@193974 18797224-902f-48f8-a5cc-f745e15eee43
2006-04-09 22:56:27 +00:00
dbaron%dbaron.org
b258ce85ca Single line comments to describe files (helpful in LXR)
git-svn-id: svn://10.0.0.236/trunk@193203 18797224-902f-48f8-a5cc-f745e15eee43
2006-03-29 18:29:03 +00:00
roc+%cs.cmu.edu
fe7bb3975b Bug 256311. Improve block reflow performance in the presence of many empty lines, by being more aggressive about caching block and line emptiness state, and by stashing a reference to a line that we know has nothing but empty lines above it. Relanding because I accidentally backed it out. r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@191298 18797224-902f-48f8-a5cc-f745e15eee43
2006-02-27 04:15:05 +00:00
roc+%cs.cmu.edu
b280811155 Backing out changes for bug 326944.
git-svn-id: svn://10.0.0.236/trunk@191296 18797224-902f-48f8-a5cc-f745e15eee43
2006-02-27 03:22:03 +00:00
roc+%cs.cmu.edu
ede1364b21 Bug 256311. Improve block reflow performance in the presence of many empty lines, by being more aggressive about caching block and line emptiness state, and by stashing a reference to a line that we know has nothing but empty lines above it. r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@191294 18797224-902f-48f8-a5cc-f745e15eee43
2006-02-27 02:51:57 +00:00
roc+%cs.cmu.edu
ce1b9ce1d3 Bug 186485. The nsLineBox maximum-width includes the block's left border-padding but not the right. r+sr=roc,a=asa,patch by Hideo Saito
git-svn-id: svn://10.0.0.236/trunk@174836 18797224-902f-48f8-a5cc-f745e15eee43
2005-06-20 03:42:19 +00:00
roc+%cs.cmu.edu
0d1ac7f10f Bug 288560. Set mIsTopOfPage for each column in a column set. Also, make it possible to force floats to fit by relaxing the space manager's height constraint if necessary. r+sr=dbaron,a=chofmann
git-svn-id: svn://10.0.0.236/trunk@172829 18797224-902f-48f8-a5cc-f745e15eee43
2005-04-28 21:25:11 +00:00
roc+%cs.cmu.edu
5efc210e97 Bug 174688. Don't apply top border-padding to block frames that aren't first in flow. Also, when a block is incomplete, ensure the frame extends to fill the entire available height. r+sr=dbaron,a=asa
git-svn-id: svn://10.0.0.236/trunk@172719 18797224-902f-48f8-a5cc-f745e15eee43
2005-04-26 02:26:12 +00:00
roc+%cs.cmu.edu
7f1a3c9c93 Bug 263825. Make paginated floats work, and other fixes. r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@171036 18797224-902f-48f8-a5cc-f745e15eee43
2005-03-23 03:35:08 +00:00
roc+%cs.cmu.edu
2baddd70c5 Bug 276602. The rects added to the space manager are not real rects; they are still significant if empty. r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@170257 18797224-902f-48f8-a5cc-f745e15eee43
2005-03-07 02:30:14 +00:00
roc+%cs.cmu.edu
d4a6c32e7b Bug 209694. Major rework of margin-collapsing and clearance to match CSS 2.1 rules. Also includes major incremental reflow fixes for those situations. See the bug for details. rubber-stamp r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@165781 18797224-902f-48f8-a5cc-f745e15eee43
2004-11-25 14:51:00 +00:00
bryner%brianryner.com
865734bf2f Change nsIPresContext to nsPresContext globally, follow-up to bug 253470. rs=roc
git-svn-id: svn://10.0.0.236/trunk@160184 18797224-902f-48f8-a5cc-f745e15eee43
2004-07-31 23:15:21 +00:00
gerv%gerv.net
2ac510b678 Bug 236613: change to MPL/LGPL/GPL tri-license.
git-svn-id: svn://10.0.0.236/trunk@155068 18797224-902f-48f8-a5cc-f745e15eee43
2004-04-18 14:30:37 +00:00
dbaron%dbaron.org
c484400136 Remove BRS_NOWRAP. b=191699 r+sr=roc
git-svn-id: svn://10.0.0.236/trunk@149157 18797224-902f-48f8-a5cc-f745e15eee43
2003-11-11 19:24:01 +00:00
dbaron%dbaron.org
33601224e0 Use the correct term "float" instead of "floater". b=218654 r+sr=bzbarsky
git-svn-id: svn://10.0.0.236/trunk@147924 18797224-902f-48f8-a5cc-f745e15eee43
2003-10-13 21:51:02 +00:00
dbaron%dbaron.org
dc67cb5024 Add comments.
git-svn-id: svn://10.0.0.236/trunk@147761 18797224-902f-48f8-a5cc-f745e15eee43
2003-10-08 20:04:20 +00:00
roc+%cs.cmu.edu
f12a3fdf92 Bug 207477. Clean up nsBlockFrame, and don't suppress invalidation in nsBlockFrame::ReflowLine if it's a resize reflow. r+sr=dbaron
git-svn-id: svn://10.0.0.236/trunk@144867 18797224-902f-48f8-a5cc-f745e15eee43
2003-07-15 00:04:43 +00:00
dbaron%dbaron.org
28c762385d Remember the lowest floater top for CSS2 9.5.1 rule 5 (a float cannot be higher than earlier floats) on the space manager rather than the block reflow state so that it works across blocks sharing the same space manager. Save and restore it in the space manager's PushState and PopState to fix incremental reflow bug (177331). b=196919 r+sr=roc+moz Change PRIntn to PRInt32. b=115153 r+sr=bzbarsky
git-svn-id: svn://10.0.0.236/trunk@139299 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-11 23:56:49 +00:00
dbaron%dbaron.org
897a1a273b Change the way we calculate max-element-width for blocks with floaters: stop trying (and sometimes failing) to ensure that there can always be text next to the floater. b=186593 r+sr=roc+moz
git-svn-id: svn://10.0.0.236/trunk@138197 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-22 16:19:31 +00:00
dbaron%dbaron.org
a569c670f5 Replace computation of max-element-size (height and width) with max-element-width alone, since the max-element-height is practically unused and not meaningful for layout. b=186953 r+sr=bzbarsky
git-svn-id: svn://10.0.0.236/trunk@136064 18797224-902f-48f8-a5cc-f745e15eee43
2003-01-09 14:26:32 +00:00
dbaron%fas.harvard.edu
ffb8d9cca7 Change my email address from dbaron@fas.harvard.edu to dbaron@dbaron.org. Comment changes only.
git-svn-id: svn://10.0.0.236/trunk@135757 18797224-902f-48f8-a5cc-f745e15eee43
2003-01-01 23:53:20 +00:00
dbaron%fas.harvard.edu
a7efa8275b Replace NS_BLOCK_WRAP_SIZE with making unconstrained-width reflow of frames with NS_BLOCK_SPACE_MGR consider the floats. This means we no longer use the overflow area for layout (other than the overflow property). Handle right floaters in unconstrained width reflow by just treating them as left floaters. b=172896 r+sr=roc
git-svn-id: svn://10.0.0.236/trunk@135476 18797224-902f-48f8-a5cc-f745e15eee43
2002-12-19 00:12:08 +00:00
karnaze%netscape.com
15faa7640c bug 127286 (part II due to cvs problems) - Handle splitting of floaters when lines impacting them are outside the block containing the floaters. sr=kin, r=alexsavulov
git-svn-id: svn://10.0.0.236/trunk@134740 18797224-902f-48f8-a5cc-f745e15eee43
2002-12-04 00:58:52 +00:00
karnaze%netscape.com
e1b0af4e1d bug 153785 - Added function to undo splitting floaters when the line they are on gets moved to the next page. Cached the break type of the last floater that gets split in the block reflow state so that the frame afterh the floater's continuation can combine that break type with its own. a=asa, sr=kin, r=alexsavulov
git-svn-id: svn://10.0.0.236/trunk@125355 18797224-902f-48f8-a5cc-f745e15eee43
2002-07-17 01:48:56 +00:00
karnaze%netscape.com
49e0a9f4cb bug 145305 - split floaters during printing. sr=attinasi, r=alexsavulov.
git-svn-id: svn://10.0.0.236/trunk@122236 18797224-902f-48f8-a5cc-f745e15eee43
2002-05-28 22:50:43 +00:00
waterson%netscape.com
5bae3657e6 Bug 129115. Change the reflow path from a list structure to a tree structure to amortize state recovery and damage propagation costs. Eliminate table timeout reflows. r=kin,karnaze,rods,rbs; sr=attinasi
git-svn-id: svn://10.0.0.236/trunk@121265 18797224-902f-48f8-a5cc-f745e15eee43
2002-05-10 18:22:41 +00:00
waterson%netscape.com
27b2245dbd Bug 135146. Implement NS_FRAME_REFLOW_ROOT to allow reflows for <textarea> and <input type='text'> to be dispatched from the scroll frame within the nsGfxTextControlFrame2. r=kin, sr=attinasi
git-svn-id: svn://10.0.0.236/trunk@118697 18797224-902f-48f8-a5cc-f745e15eee43
2002-04-11 01:13:41 +00:00
karnaze%netscape.com
d2766aacef bug 128804 - moved optimization of text controls to nsBlockReflowState and initialized it earlier. a=dbaron, sr=attinasi, r=alexsavulov.
git-svn-id: svn://10.0.0.236/trunk@116409 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-12 15:48:52 +00:00
dbaron%fas.harvard.edu
6d6d615a63 Fix floater state recovery to descend into blocks (which might contain floaters). b=106658 r=kin sr=waterson
git-svn-id: svn://10.0.0.236/trunk@108158 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-15 07:28:46 +00:00
dbaron%fas.harvard.edu
7ddeb79974 Remove unnecessary XPCOM interface around nsSpaceManager. b=102453 r=jag sr=waterson
git-svn-id: svn://10.0.0.236/trunk@106331 18797224-902f-48f8-a5cc-f745e15eee43
2001-10-26 05:06:07 +00:00
dbaron%fas.harvard.edu
8b3489a026 Bug 86947:
Make the line list doubly linked and access it through a list class and iterators.
Stop recomputing margins on all of the children of each block in the reflow chain (which causes O(N^2) state recovery during incremental reflow).  Instead, add a second dirty bit to the lines and walk backwards through the line list to recompute vertical margins only when either dirty bit is set and the previous line was not reflowed.  Add nsIFrame::IsEmpty to identify frames through which margins collapse.
Fix O(N^2) propagation of float damage by maintaining a set of intervals damaged by floats (bug 61962) and be sure to damage the correct areas (bug 48138).
Introduce nsCollapsingMargin to do correct collapsing of combinations of positive and negative margins (bug 50142).
Clean up some odds and ends and fix another smaller O(N^2) problem in nsBlockFrame::AddFrames.
r=attinasi, rbs  sr=waterson


git-svn-id: svn://10.0.0.236/trunk@106224 18797224-902f-48f8-a5cc-f745e15eee43
2001-10-25 01:08:40 +00:00
gerv%gerv.net
13afb6d0f9 Relicensing Round 1, Take 2. Most C-like NPL files -> NPL/GPL/LGPL. Bug 98089.
git-svn-id: svn://10.0.0.236/trunk@104119 18797224-902f-48f8-a5cc-f745e15eee43
2001-09-28 20:14:13 +00:00