Commit Graph

191 Commits

Author SHA1 Message Date
L. David Baron
ad5d856ae6 Rename flags and methods from space manager to float manager. (Bug 191448) r+sr=roc 2009-01-04 19:39:54 -05:00
Robert O'Callahan
ed30595e99 Bug 431341. Include floating first-letter text when we build textruns for a paragraph, because we want nsLineBreaker to see the text for capitalization analysis. Make sure that textrun construction for floating first-letter text uses the block as its scope. And make sure we reconstruct textruns after determining the first-letter length, so that ligatures are broken as necessary. r=smontagu 2008-07-29 22:11:26 -07:00
Simon Montagu
0185f285af Support for word-wrap CSS property. Bug 99457, r+sr=dbaron, roc 2008-07-24 10:16:18 +03:00
Mats Palmgren
bd4639345b Take left border+padding into account when calculating distance from block edge for TAB. b=430926 r+sr=roc 2008-06-20 06:39:56 +02:00
Robert O'Callahan
1b6c71eabf Bug 439004. Check whether there's logically empty content already placed on the line instead of just checking whether the line has advanced horizontally. r+sr=dbaron. 2008-06-14 20:28:07 +12:00
Robert O'Callahan
4188aa979e Allow floats to be placed on the current line even after nonzero-width inline content has been placed. Fixes an Acid3 layout bug. r+sr=dbaron 2008-06-11 11:53:22 +12:00
masayuki@d-toybox.com
6e2677d193 Bug 392785 overflowed underline sometimes is not repainted at scrolling r+sr=roc b1.9=dbaron 2008-02-16 07:31:27 -08:00
roc+@cs.cmu.edu
05225fa949 Bug 400813. Text with font-size:0 should not make a line be treated as empty. r+sr=dbaron 2008-02-14 01:08:33 -08:00
roc+@cs.cmu.edu
abee6630e1 backing out bug 400813 again due to reftest failure... 2008-02-11 18:48:17 -08:00
roc+@cs.cmu.edu
5c233a1d82 Bug 400813. Lines with font-size:0 content should not be treated as empty. r+sr=dbaron 2008-02-11 17:42:14 -08:00
roc+@cs.cmu.edu
0b989b691c Backing out 400813, sigh 2008-01-29 23:35:05 -08:00
roc+@cs.cmu.edu
4786a8d1cb Bug 400813. Lines with actual content that just happens to be zero-width should be treated as non-empty. r+sr=dbaron 2008-01-29 23:12:26 -08:00
dbaron@dbaron.org
5553e72c54 Remove unused height output from nsLineLayout::EndSpan. b=407086 r+sr=roc a=dsicore 2007-12-12 13:51:18 -08:00
roc+@cs.cmu.edu
095643fe53 Bug 407111. Correctly set whether a break opportunity after non-text content fits. r+sr=dbaron,a=schrep 2007-12-07 01:17:19 -08:00
dmose@mozilla.org
4ef13d4907 Backing out fix for bug 392785 as per roc + mconnor. 2007-12-04 15:32:08 -08:00
masayuki@d-toybox.com
7fc09046f2 Bug 392785 overflowed underline sometimes is not repainted at scrolling r+sr=roc, b1.9=dbaron 2007-12-02 22:51:57 -08:00
roc+@cs.cmu.edu
e1da1696a2 Bug 393096. Allow an element containing breakable whitespace to introduce a break opportunity no matter what the context. Also cleans up some trimming stuff and adds comprehensive whitespace breaking and trimming reftests. r+sr=dbaron 2007-10-20 00:30:26 -07:00
tglek@mozilla.com
8cf3fb1c90 Clean up prbool misuse in layout. bug 398312, r+sr+a=dbaron 2007-10-09 17:00:05 -07:00
roc+@cs.cmu.edu
18ec94e683 Bug 392829. Clean up nsLineLayout code that's not used (or at least used differently). r+sr+a=dbaron 2007-10-01 19:36:26 -07:00
roc+@cs.cmu.edu
a0ce273d02 Bug 96041. Compute precise glyph extents for high-quality text, and when requested. r=vlad,r+sr=dbaron 2007-09-23 19:19:14 -07:00
roc+@cs.cmu.edu
f5ea55f8b4 Backing out due to test bustage 2007-09-22 06:28:16 -07:00
roc+@cs.cmu.edu
f2b87e6c9a Bug 96041. Compute true glyph bounding metrics. r=vlad,dbaron,sr=dbaron 2007-09-22 05:43:52 -07:00
roc+@cs.cmu.edu
5fe6149b7e Bug 383551. Clean up IsInlineFrame, nsStyleDisplay::IsBlockLevel and related methods. r+sr=dbaron 2007-06-26 19:31:35 -07:00
roc+@cs.cmu.edu
af01fb8e0e Bug 381130. Small changes to layout to fix an inline reflow bug and add a new API to nsLineLayout to support tab stops. r+sr=dbaron 2007-05-20 20:44:26 -07:00
roc+%cs.cmu.edu
5ea42c0e18 Bug 369227. Record the first soft break beyond the available width, if there isn't one within the available width. r+sr=dbaron 2007-02-21 01:52:03 +00:00
dbaron%dbaron.org
0e9e52586a Combine the code that tests inlines for dependence on the containing block width in order to disable resize reflow optimizations, and add to that code things that shrink wrap (inline-block, inline-table, buttons, fieldsets). Also move the percentage-height tests out, and into InitResizeFlags. b=163504 r+sr=bzbarsky 2007-01-27 18:40:26 +00:00
dbaron%dbaron.org
f6245f0ed9 Change the bulk of ascent (baseline) computation to happen on a virtual method on nsIFrame, and remove the redundant descent member from nsHTMLReflowMetrics, primarily to support having both first-line and last-line baselines. b=367332 r+sr=roc 2007-01-23 04:06:56 +00:00
roc+%cs.cmu.edu
7790a961e0 Bug 333659. Relanding nsLineLayout API changes for new text code. r+sr=dbaron 2007-01-18 01:20:09 +00:00
roc+%cs.cmu.edu
49502dd9e1 Backout of nsLineLayout changes; trying to fix luna orange 2007-01-17 06:27:01 +00:00
roc+%cs.cmu.edu
e8d2197c1a Bug 333659. Relanding new nsLineLayout API to make in-first-line-frame and current-nsLineBox available; should not affect anything. r+sr=dbaron 2007-01-17 03:59:32 +00:00
roc+%cs.cmu.edu
7268a1957b Backing out text landing. 2007-01-16 22:25:20 +00:00
roc+%cs.cmu.edu
e6bad38abe Bug 333659. Landing new text interfaces, new gfxPangoTextRun (enabled), new textframe code (disabled). r+sr=dbaron for the part-of-the-build layout parts,r=stuart for the part-of-the-build gfx parts 2007-01-16 20:51:52 +00:00
dbaron%dbaron.org
e8425e7c24 Remove nsLineLayout::mWordWidth, which should have been removed in earlier reflow branch merging. b=363232 r+sr=roc 2006-12-13 23:11:13 +00:00
dbaron%dbaron.org
31f1898810 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. 2006-12-08 05:38:33 +00:00
roc+%cs.cmu.edu
899128e82a Bug 343445. Change inline reflow strategy to avoid looking ahead through words while measuring text. r+sr=dbaron 2006-10-19 01:47:47 +00:00
bzbarsky%mit.edu
5c3e8ea185 Trim whitespace that comes right before a <br> when trimming whitespace. Bug
132561 relanding, r+sr=dbaron
2006-04-21 01:31:35 +00:00
bzbarsky%mit.edu
9a725b0dff Make line boxes have the right width when justifying. Bug 309761, r+sr=roc 2006-04-12 01:07:01 +00:00
dbaron%dbaron.org
0e88f73bc6 Single line comments to describe files (helpful in LXR) 2006-03-29 18:29:03 +00:00
rbs%maths.uq.edu.au
a87237ad06 Re-checkin as it showed no impact on luna's TDHML bug 331661. Introduce a soft-break flag that means that a whitespace has been trimmed at the end of the line, and therefore its width has not been accounted for (this width can actually be large, e.g., if a large word-spacing is set). LineLayout should not be misled into placing something where the whitespace was trimmed. b=329987, r+sr=bz 2006-03-27 07:04:29 +00:00
rbs%maths.uq.edu.au
a9f97d0fd5 Backing out to investigate the DHTML jump on luna, bug 331661 2006-03-27 05:21:44 +00:00
rbs%maths.uq.edu.au
b622717f33 Introduce a soft-break flag that means that a whitespace has been trimmed at the end of the line, and therefore its width has not been accounted for (this width can actually be large, e.g., if a large word-spacing is set). LineLayout should not be misled into placing something where the whitespace was trimmed. b=329987, r+sr=bz 2006-03-24 22:45:05 +00:00
roc+%cs.cmu.edu
26ce4cd8a3 Bug 297537. Line layout should not set an available-height constraint on the inline frames, because they can't break vertically ... and it certainly shouldn't set the constraint based on the band dimensions. Fixes Gmail rich text toolbar layout issue. r+sr=dbaron,a=asa 2005-06-17 02:46:36 +00:00
roc+%cs.cmu.edu
87c224f2cb Bug 263825. Make paginated floats work, and other fixes. r+sr=dbaron 2005-03-23 03:35:08 +00:00
bryner%brianryner.com
5c02a6978c Change nsIPresContext to nsPresContext globally, follow-up to bug 253470. rs=roc 2004-07-31 23:15:21 +00:00
jim_nance%yahoo.com
824a6d1d0c Fix But #250105 - Add Arena for nsLineLayout buffers. r+sr=roc 2004-07-15 17:50:34 +00:00
gerv%gerv.net
708b56cff4 Bug 236613: change to MPL/LGPL/GPL tri-license. 2004-04-18 14:30:37 +00:00
dbaron%dbaron.org
2a10660d41 Backing out my checkin from yesterday. b=199673 2004-03-10 17:13:39 +00:00
dbaron%dbaron.org
2ecaa27129 In almost-standards mode, standards-mode text decorations and quirks-mode inline box model have to interact -- so make standards-mode text-decorations (when text-decorations are present) cause the standards-mode inline box model. b=199673 r+sr=bzbarsky 2004-03-10 00:28:17 +00:00
scott%scott-macgregor.org
3d4524453c Back out Bug #132561 until we can figure out how to fix the regression it causes in HTML composer with spaces
(See Bug #235223).

a=brendan
2004-03-02 01:23:13 +00:00
bzbarsky%mit.edu
172b44ad4e Trim whitespace that comes right before a <br> when trimming whitespace. Bug
132561, r+sr=dbaron
2004-02-19 22:12:38 +00:00
bzbarsky%mit.edu
9d18d90270 Collapse trailing whitespace even if there is a placeholder after it. Bug
233451, r+sr=dbaron
2004-02-09 01:01:06 +00:00
dbaron%dbaron.org
b743b23ea2 Removed unused LineIsEmpty function. 2003-11-11 19:25:49 +00:00
dbaron%dbaron.org
3de4dc91e0 Use the correct term "float" instead of "floater". b=218654 r+sr=bzbarsky 2003-10-13 21:51:02 +00:00
dbaron%dbaron.org
693a674a5b Remove LL_TEXTSTARTSWITHNBSP, since it's a partial and broken solution to the problem, and it's in the wrong place. b=187899 r+sr=roc 2003-09-28 22:56:08 +00:00
pkw%us.ibm.com
48c6e651e5 Bug 217499: Clean up AIX libpath and configure script
r=cls@seawood.org, a=asa@mozilla.org
2003-08-29 17:15:06 +00:00
dbaron%dbaron.org
7008f7eb21 Make sure we include the overflow area in the size of views, for blocks and inlines, at least. b=79315 r+sr=roc 2003-07-23 00:14:16 +00:00
mkaply%us.ibm.com
e5e34ae312 rs=leaf
Remove XP_OS2_VACPP from the tree
2003-07-21 22:10:08 +00:00
dbaron%dbaron.org
57124d8115 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 2003-01-09 14:26:32 +00:00
dbaron%fas.harvard.edu
34a1e37f7e Correctly implement text-decoration in standards mode by drawing the underline on the element with the text-decoration property set. Refactor painting code a bit to avoid code duplication. Patch by Esben Mose Hansen <esben@oek.dk>, with paint refactoring and some other changes by dbaron. r=dbaron sr=bzbarsky b=1777 2002-12-11 04:00:18 +00:00
bzbarsky%mit.edu
d50d6912c0 Reorder some members in nsLineLayout to make them pack better. Bug
176749, patch by dann@godzilla.ics.uci.edu (Dan), r=bzbarsky, sr=dbaron
2002-11-06 02:03:43 +00:00
karnaze%netscape.com
d71ccf1e46 bug 157915 - Use the parent of the continued frame when calling DeleteChildsNextInFlow. sr=kin, r=alexsavulov 2002-09-24 22:13:20 +00:00
dbaron%fas.harvard.edu
815f207e63 Back out most of patch for bug 154910 to fix crash, since nsLineLayout need not do all its allocation without other things lower on the stack. b=162516 2002-08-14 13:00:16 +00:00
dbaron%fas.harvard.edu
6a85bf516a Make BR-related parts of the quirky inline box model also quirky in almost-standards mode, to match the rest of the inline box model quirks. b=161691 sr=bzbarsky r=caillon 2002-08-11 18:00:07 +00:00
dbaron%fas.harvard.edu
5e339bca9e Allocate PerFrameData and PerSpanData in pres shell's stack arena. b=154910 r=bzbarsky sr=waterson 2002-08-06 13:51:07 +00:00
dbaron%fas.harvard.edu
e63a11c0e8 Split strict mode into almost-standards and full-standards mode, where the only quirk in almost standards mode is the quirky inline box model. Remove previous fix for bug 151620. Tweak mode detection to use almost-standards for XHTML Transitional, HTML 4.01 transitional with system ID, and for IBM system DOCTYPE. b=153032 r=karnaze, bzbarsky, harishd sr=waterson 2002-06-25 21:16:17 +00:00
karnaze%netscape.com
1faf4c0592 bug 145305 - split floaters during printing. sr=attinasi, r=alexsavulov. 2002-05-28 22:50:43 +00:00
dbaron%fas.harvard.edu
e587531414 Use text-indent in max-element-size calculation (130116, 91468, 140682). Don't apply text-indent after page break to the same block (45694). b=130116 r=attinasi sr=waterson 2002-05-14 12:55:55 +00:00
waterson%netscape.com
e3554c37cc 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 2002-05-10 18:22:41 +00:00
smontagu%netscape.com
2ef941a509 Improve performance by making nsWordFrame in nsLineLayout an nsDeque instead of an nsAutoVoidArray. Bug 121967, r=timeless, sr=attinasi, a=asa 2002-03-19 21:57:45 +00:00
waterson%netscape.com
a04e667ef4 Bug 46918, 3490. Clean up inline margin handling. r=rbs, sr=kin 2002-01-30 23:28:56 +00:00
jdunn%netscape.com
cd34d9887d Change certain AIX ifdefs to AIX_XLC_364 since these ifdefs are only
needed for AIX's xlC 3.6.4 compiler.  Add test to configure to check
compiler version.  NOTE: also adding hpux and aix check for keyboardutils.
r=cls@seawood.org
# 119179
2002-01-25 15:07:38 +00:00
dbaron%fas.harvard.edu
6e86902faa Remove unnecessary XPCOM interface around nsSpaceManager. b=102453 r=jag sr=waterson 2001-10-26 05:06:07 +00:00
dbaron%fas.harvard.edu
157c017816 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
2001-10-25 01:08:40 +00:00
dbaron%fas.harvard.edu
ff52e9e58d Use nsAutoVoidArray for stack-based nsLineLayout to reduce allocations. r=jag sr=waterson b=90727 2001-07-25 05:20:09 +00:00
dbaron%fas.harvard.edu
077fc4d427 Add some comments to code about issues that we should look at, remove some unused code, rename some unnecessarily-overloaded functions, fix some typos, and make a few minor style changes. b=88735 r=waterson sr=attinasi 2001-07-04 02:00:05 +00:00
waterson%netscape.com
6584908739 Bug 77414. Break nsBlockReflowState out into its own files. sr=attinasi 2001-05-01 04:22:57 +00:00
buster%netscape.com
37e900a62c bug 28811
r=karnaze
The problem was we were over-eager in optimizing away a resize reflow for lines
that contain %-aware children.  We were only looking at the first-level children
of a line, not all the children.  Now, we compute a bit for each inline container
based on it's children, true if any of them are %-aware wrt any width measurement.
We propogate this bit upwards to a bit on the line itself, and check this bit during reflow.
2000-09-11 20:46:44 +00:00
rbs%maths.uq.edu.au
af8754b765 Enable the code to export the baseline out of the block frame code to support 'vertical-article: baseline' in table-cells. bug 10207. a:waterson@mozilla.org. was r:buster@netscape.com. 2000-07-28 09:18:15 +00:00
waterson%netscape.com
9bd4266798 Bug 19051. Remove code that computed and maintained nsTextRun. Instead, compute 'next text' when required by crawling the frame tree in nsLineLayout::FindNextText(). r=roc+moz@cs.cmu.edu 2000-07-27 05:16:08 +00:00
rbs%maths.uq.edu.au
1a36f0816d [#ifdef MOZ_MATHML: not yet part of default build]. Export the baseline out of the block frame code to support 'vertical-align: baseline' in table-cells. bug 10207. r:buster@netscape.com. a:waterson@mozilla.org 2000-06-05 08:24:18 +00:00
mkaply%us.ibm.com
23620fb329 # 34082
r= troy
OS/2 bring up continues - PR_CALLBACKs for VisualAge
2000-05-02 23:07:11 +00:00
buster%netscape.com
f40b76249a bug 588 (text justification) for Robert O'Callahan <roc+moz@cs.cmu.edu>
r=buster

bug 18545 ([FLOAT] Problem Centering <TABLE> with <DIV> tag)
r=troy

bugs 18827, 19579, 22327 24782, 26512, 30124, 31849, 32846 (floater behavior wrong)
The primary change here is to determine if a block is impacted by a floater, and if so
mark the block's lines dirty when appropriate.
r=troy

no bug number.  performance work.  reduced the size of some reflow data structures by
collapsing multiple fields into a single bit field.
r=troy
2000-04-17 14:40:46 +00:00
dbaron%fas.harvard.edu
e0c71d1e53 Fix bug 15428 as suggested by VYV03354@nifty.ne.jp . Stop using 0 as the initial values for min and max of inline box contents so that lines that do not (vertically) contain their own baseline are sized correctly. Also, correctly size BR frames using their line-height (for strict-mode only).
Fix bugs 24186, 26996, and 26998 by reworking the quirks-mode line-height handling so that inline elements that do not have text as children (or meet a few other conditions that show the author wants real CSS support) will not increase the size of the line, but will be as close to their correct size as possible without enlarging the line.  This fix includes emulation of the strange Nav4/IE quirk that a block's line-height is enforced on the first line of LI elements and the last line of LI, DD, and DT elements.  Many of the changes are removing an earlier fix for 24186.

r=buster
2000-02-15 04:26:44 +00:00
buster%netscape.com
d2e420cfb4 fixed bug 24186 (well, fixed it enough for beta at least. see bug for details)
r=troy
2000-02-02 07:38:23 +00:00
troy%netscape.com
540b3229d3 Reduced stack space by using PRPackedBool instead of PRBool 2000-01-04 02:59:35 +00:00
troy%netscape.com
8791b810ba Added new #define NS_SHRINKWRAPWIDTH that specifies that a frame should
shrink wrap its width (paying attention to the maximum computed width). Mostly
complete implementation for block frames
2000-01-03 04:32:13 +00:00
tbogard%aol.net
af1ce8d410 Changed nsIPresContext& to nsIPresContext*. Changed nsEventStatus& to nsEventStatus*. Now more compatible with XPIDL. a=vidur r=scc 1999-11-24 06:03:41 +00:00
dmose%mozilla.org
5312eacf8c updated license boilerplate to xPL 1.1, a=chofmann@netscape.com,r=endico@mozilla.org 1999-11-06 03:40:37 +00:00
kipp%netscape.com
c93281e841 r=troy; fixed bugs 2636 and 17636 - line layout issues for some more edge cases (nobr's with floaters in them) and handling of nbsp 1999-11-02 15:44:57 +00:00
kipp%netscape.com
f961e4b03a r=troy; updated api slightly to support fixes to bug 12760, 12958 and some resize-reflow optimization bugs 1999-10-29 14:33:26 +00:00
kipp%netscape.com
e44578adf4 Fixed bugs with combined-area continuing to include trimmed whitespace (wip for 12297); Added support for tracking trim for 16176) 1999-10-12 23:27:32 +00:00
kipp%netscape.com
d5d391a005 Reimplement TrimTrailingWhiteSpace; fixed another combined area bug (12910) 1999-09-21 00:14:22 +00:00
kipp%netscape.com
beadfcb37c Reworked to be more css compliant; factored compatability logic out of nsInlineFrame into here 1999-09-09 21:04:37 +00:00
kipp%netscape.com
86e12ae621 Implement fix for bug #5821 as per dbaron's suggestion 1999-09-03 03:47:49 +00:00
kipp%netscape.com
07283caa5c Shrink down size of nsLineLayout object 1999-08-27 21:49:12 +00:00
nisheeth%netscape.com
aa6ad6f2fe Adding support in line layout for the CSS "direction" property. 1999-05-08 00:48:39 +00:00
kipp%netscape.com
138e73d3f2 Renamed header file 1999-04-20 00:24:32 +00:00
jdunn%netscape.com
7af07e06fa ANSIC requires that structures need 'friend' status to access other structures
IF they are protected (or private).  fix for bug 4642
1999-04-12 20:12:15 +00:00
kipp%netscape.com
f43163b5c4 Switch to a different (more accurate) BR handling hack... 1999-04-03 18:57:30 +00:00
jdunn%netscape.com
4241b16ff7 Fix compiler error on AIX...
Can't have 'protected' structures, so for AIX make them public and then
make sure that the AIX is defined in the Makefile.in
1999-03-31 04:21:53 +00:00