Commit Graph

291 Commits

Author SHA1 Message Date
Joe Drew
659abece3b Backed out changeset 6a452e522e07 - Boris Zbarsky – Bug 67752. Implement interruptible reflow. r=roc,dbaron - because of apparent Tp hangs. 2009-04-21 23:02:17 -04:00
Boris Zbarsky
600528e80b Bug 67752. Implement interruptible reflow. r=roc,dbaron 2009-04-21 19:53:52 -04:00
L. David Baron
8e5a8817f7 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
5607fe20f6 Switch away from nsBlockReflowState::mAvailSpaceRect for reflow of child floats. (Bug 25888) r+sr=roc 2009-04-08 13:52:36 -07:00
Daniel Holbert
8c965d4b9d Bug 465928 followup: correct typo in enum name - s/PERSERVE/PRESERVE/. No functional changes. r=roc 2009-01-13 12:28:28 -08:00
Benjamin Smedberg
0f95227641 Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

nsITextControlFrame didn't have an IID the first time around, but this wasn't a compile error because nsITextControlFrame::kFrameIID inherited from nsIFormControlFrame::kFrameIID. I've added a static analysis pass to verify the correct behavior, since I can't figure out a way to make the compiler do it.
2009-01-12 14:20:59 -05:00
Benjamin Smedberg
7a084ac404 Backed out changeset 4c4df6ed1b41 - Bug 396185 - Make nsIFrame not inherit from nsISupports due to mochitest failures... these appear to be crashes in nsGenericHTMLElement::GetEditorInternal. 2009-01-09 11:35:24 -05:00
Benjamin Smedberg
991a16d8bc Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

This patch locally causes two REFTEST-UNEXPECTED-PASS for Bidi stuff. It's possible that I accidentally fixed a bug, but I'm not sure, so I'm going to wait for the tinderboxes to confirm my local results.
2008-11-05 14:25:30 -05:00
L. David Baron
f2d241e914 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
d9ba93a856 Bug 458296. When a block doesn't carry out the bottom-margin of its children, add that bottom-margin to its overflow area. Also, add the bottom-padding of a scrolled block to its overflow area. r+sr=dbaron 2008-12-29 21:18:40 +13:00
Robert O'Callahan
9269d984e4 Followup comment change for bug 465928. 2008-12-03 14:50:22 +13:00
Robert O'Callahan
867901d04c Bug 465928. Avoid SetInvalidateTextRuns being called by nsBlockFrame::DoRemoveFrame when we're just deleting empty continuation frames. r+sr=dbaron 2008-12-03 14:27:19 +13:00
Benjamin Smedberg
f2c9a5bafb Relanding bug 461410 - nsILineIterator is never used outside of layout - set nsresults to replicate the existing code more correctly, which fixes the mochitest failures, r+sr=roc with nits noted by Mats Palmgren 2008-10-30 12:17:59 -07:00
Benjamin Smedberg
30915057bb Backed out changeset d4c9a0776667 (deCOM nsILineEnumerator) due to regression from it or bug 461212 2008-10-28 02:49:14 -04:00
Benjamin Smedberg
f0a65beeac Bug 461410 - nsILineIterator is never used outside of layout, and doesn't need to be refcounted: the callers can just destroy it when they're done with it. We can't do this with a virtual destructor, however, because nsTableRowGroupFrame implements the interface directly, while nsLineIterator is a separately-allocated class. So clients are expected to call DisposeLineIterator when they're done with it.
Instead of accessing nsILineIterator using QueryInterface, we add a nsIFrame::GetLineIterator API, which is cleaner and more efficient all at the same time!

r+sr=roc
2008-10-28 00:47:19 -04:00
Mats Palmgren
e7ae479812 Add 'aLineList' param to MarkLineDirty() so it knows the correct line list for 'aLine'. b=443528 r+sr=roc 2008-10-12 21:26:06 +02:00
Robert O'Callahan
bee2844b64 Bug 450930. Fire a DOM event when painting so that content and chrome can track what's being repainted. r=smaug,sr=dbaron 2008-09-18 21:47:21 +12:00
Michael Ventnor
150c4b66e1 Implement text-shadow rendering (bug 10713). r+sr=roc. Relanding with fixes to make tests pass on Mac 2008-06-13 10:02:32 +12:00
cd6776c3e4 Backing out text-shadow due to Mac issues 2008-06-12 17:32:31 +12:00
Michael Ventnor
0783f3a97a Implement text-shadow rendering. 2008-06-12 14:34:40 +12:00
Robert O'Callahan
221d348cf2 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
2cba0afc84 Compute widths for replaced block clearing past floats once we're at the correct vertical position. b=430813 r+sr=roc a=schrep 2008-05-03 16:33:36 -07:00
08ad459197 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 2008-04-14 18:05:17 -07:00
003ba486ca Bug 427017: Disable page-break-before/after for fixed- & absolutely-positioned elements. Also, fix assertion during an iterator-comparison by handling case where lineBox is in overflow-lines. r=fantasai sr=roc a1.9=beltzner 2008-04-11 22:32:49 -07:00
516d9d37b4 Bug 417014 Need blacklist system for underline offset adjusting of CJK fonts which have wrong underline offset r=roc+stuart, sr=roc, b1.9=stuart 2008-03-12 19:36:58 -07:00
bbbc01a0d1 Bug 400057. Make nsBlockInFlowLineIterator useful for finding the line containing a frame, searching across block continuations and their overflow lines. Use it in various places, especially in textrun construction. r+sr=dbaron 2008-02-27 01:53:48 -08:00
9ec4d96f1c fixed positioned elements print only on first and last pages b=417676 r+sr=roc 2008-02-24 04:19:17 -08:00
6b7f42ddc3 Bug 391559 - "Incorrect ordered-list numbering within -moz-column-* (and/or numbering changes when clicked)" [p=craig.topper@gmail.com (Craig Topper) r+sr=roc a1.9=beltzner] 2008-02-23 23:31:29 -08:00
fa9c906fce 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+ 2008-02-10 13:49:24 -08:00
0e992d0a5c Bug 411870. nsBidiPresUtils needs to track the current line across block continuation boundaries. r=smontagu 2008-01-29 15:39:39 -08:00
a45f66ce73 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+ 2008-01-28 23:40:05 -08:00
8c07f99bf2 Bug 411870 backout again 2008-01-28 11:10:26 -08:00
7069971a0a Bug 411870. Bidi resolution needs to scan through block continuations when tracking the current line for frames. r=smontagu 2008-01-28 10:16:22 -08:00
9409e73aa0 backing out 411870 2008-01-27 22:28:31 -08:00
88fa1d00cc Bug 411870. Make bidi resolution track lines across block continuation boundaries. r=smontagu 2008-01-27 21:07:14 -08:00
292273a3ac Fix comment describing nsBlockFrame. 2007-12-12 13:49:14 -08:00
8dc8fca37a Bug 400244. Remove UndoSplitPlaceholders which is not only unnecessary but actually harmful/crashy. r=fantasai,sr=dbaron 2007-12-01 02:51:56 -08:00
3c02193209 Bug 398101 - Be more diligent about invalidating textruns for lines [p=roc r+sr=dbaron a=blocking1.9+] 2007-11-08 22:55:32 -08:00
25179a8425 Bug 399384: Make first-letter frames use nearest ancestor blockFrame's content node, instead of direct parent's. r=bzbarsky, r+a=roc 2007-10-19 10:41:29 -07:00
b6efadf476 Bug 397518. Wrap inline non-MathML children of MathML frames in anonymous blocks. r+sr=bzbarsky 2007-10-12 01:30:54 -07:00
a6eade3046 Change the usage of NEEDS_BIDI_RESOLUTION so that it is either set on every block in a continuation chain or none of them. Bug 394805, r+sr+b=roc 2007-10-11 04:41:04 -07:00
a66b887e59 Take into account that |line| can be an overflow line when accessing the previous line. Patch by roc and me. b=397007 r+sr=me/roc blocking1.9=roc 2007-10-07 10:32:07 -07:00
87938a266e Previous checkin was for bug 382422 2007-09-03 00:00:10 -07:00
7ff5e15a78 Bug 394222: Optimize calls to Bidi resolution. r=dbaron, sr+a=roc 2007-09-02 23:51:11 -07:00
e5d538f318 Bug 390050. Scan all blocks in a flow-chain, and their overflow lines, when iterating through lines to build text runs. r=smontagu,mats,sr=mats,a=bz 2007-08-22 02:08:13 -07:00
f5d4190bff Bug 365336 text-decoration width should be rounded to the device pixels r+sr=roc 2007-08-06 01:15:00 -07:00
094b31fdd0 Bug 386801 - nsAbsoluteContainingBlock doesn't need to store a child list name; this shaves four bytes off nsViewportFrame, nsBlockFrame, and nsPositionedInlineFrame. r+sr+a=dbaron 2007-08-02 15:44:36 -07:00
e3742c090c 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 2007-07-25 21:03:29 -07:00
0490a58e96 Bug 381385: get rid of unneeded members of nsFloatCache (saves about 50 bytes footprint per float). r+sr=roc. 2007-06-16 13:27:46 -07:00
12449ae2ce Do bidi resolution during GetPrefWidth() and GetMinWidth() as well as Reflow(). Bug 365130, r+sr=roc 2007-05-28 07:40:56 -07:00