Граф коммитов

443 Коммитов

Автор SHA1 Сообщение Дата
Daniel Holbert 42f2f94d22 Bug 490909: Remove old layout debugging code, patch #2: remove 'VerifyTree' & related code. r+sr=dbaron 2009-05-12 12:03:09 -07:00
Boris Zbarsky 346daa82d1 Bug 67752. Implement interruptible reflow. r=roc,dbaron 2009-04-21 19:53:52 -04:00
Joe Drew 633b99bd32 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 5c5eb9c3ea Bug 67752. Implement interruptible reflow. r=roc,dbaron 2009-04-21 19:53:52 -04: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
Daniel Holbert 4ace9611a5 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 3498a5f86e 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.

--HG--
extra : rebase_source : 4894a2ca0278e2ab92f27459db77165f8348cf41
2009-01-12 14:20:59 -05:00
Benjamin Smedberg 73a6fab34b 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 802d1a10c7 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 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 9d2aaab3a6 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 3bbe36fc35 Followup comment change for bug 465928. 2008-12-03 14:50:22 +13:00
Robert O'Callahan bc9d906d47 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 ae14b3d6aa 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 292d44b1a8 Backed out changeset d4c9a0776667 (deCOM nsILineEnumerator) due to regression from it or bug 461212 2008-10-28 02:49:14 -04:00
Benjamin Smedberg 87c2e7ef23 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 8344d70c49 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 775dd33c74 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 129d4dc805 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
Robert O'Callahan 42904fb3e3 Backing out text-shadow due to Mac issues 2008-06-12 17:32:31 +12:00
Michael Ventnor 159e13c0ea Implement text-shadow rendering. 2008-06-12 14:34:40 +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
dbaron@dbaron.org f7d78f8105 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
dbaron@dbaron.org f8dcd3c29e 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
dholbert@cs.stanford.edu b7a5c89466 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
masayuki@d-toybox.com dfeff6fa58 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
roc+@cs.cmu.edu efc1d5a1dd 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
fantasai.cvs@inkedblade.net 919d5bd3d3 fixed positioned elements print only on first and last pages b=417676 r+sr=roc 2008-02-24 04:19:17 -08:00
reed@reedloden.com e59cccedde 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
dbaron@dbaron.org f94fd579c7 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
roc+@cs.cmu.edu 5338360abe Bug 411870. nsBidiPresUtils needs to track the current line across block continuation boundaries. r=smontagu 2008-01-29 15:39:39 -08:00
dbaron@dbaron.org f970a9abc8 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
roc+@cs.cmu.edu 72c72d1d33 Bug 411870 backout again 2008-01-28 11:10:26 -08:00
roc+@cs.cmu.edu ef12785f4c 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
roc+@cs.cmu.edu cc8a28fdd6 backing out 411870 2008-01-27 22:28:31 -08:00
roc+@cs.cmu.edu fbf20e6e5d Bug 411870. Make bidi resolution track lines across block continuation boundaries. r=smontagu 2008-01-27 21:07:14 -08:00
dbaron@dbaron.org d741ff81b0 Fix comment describing nsBlockFrame. 2007-12-12 13:49:14 -08:00
roc+@cs.cmu.edu 6512139327 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
reed@reedloden.com 8c4eb4e25f 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
dholbert@cs.stanford.edu f90fee0b0b 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
roc+@cs.cmu.edu 036806699a Bug 397518. Wrap inline non-MathML children of MathML frames in anonymous blocks. r+sr=bzbarsky 2007-10-12 01:30:54 -07:00
smontagu@smontagu.org 251bc05568 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
mats.palmgren@bredband.net b61d4af97e 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
smontagu@smontagu.org 47796d6787 Previous checkin was for bug 382422 2007-09-03 00:00:10 -07:00
smontagu@smontagu.org ba9c0ad3c2 Bug 394222: Optimize calls to Bidi resolution. r=dbaron, sr+a=roc 2007-09-02 23:51:11 -07:00
roc+@cs.cmu.edu 1131fb1665 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
masayuki@d-toybox.com 9affd989eb Bug 365336 text-decoration width should be rounded to the device pixels r+sr=roc 2007-08-06 01:15:00 -07:00
jwalden@mit.edu bf1a450729 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
roc+@cs.cmu.edu a28eeaaafd 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
sharparrow1@yahoo.com 2c2399e327 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
smontagu@smontagu.org 5318673346 Do bidi resolution during GetPrefWidth() and GetMinWidth() as well as Reflow(). Bug 365130, r+sr=roc 2007-05-28 07:40:56 -07:00
bzbarsky@mit.edu 1b5f6b30b6 Change the FrameNeedsReflow API to pass the dirty flags to be added directly tothe method, instead of setting them before calling the method. That way we canavoid reflowing the ancestor of a reflow root which is not itself dirty but hasdirty children. This also makes it harder to set dirty bits inconsistentlywith the FrameNeedsReflow call. Bug 378784, r+sr=dbaron, pending rbs' reviewon the mathml parts. 2007-05-06 12:16:51 -07:00
roc+@cs.cmu.edu 31b42ee9c8 Bug 368863. Reparent floats properly when placeholders move between inline continuations. r+sr=dbaron 2007-04-20 17:42:58 -07:00
bzbarsky@mit.edu 884eb773c8 Improve detection of blocks with first-letter style. Bug 372550, r+sr=dbaron 2007-04-15 17:42:54 -07:00
bzbarsky%mit.edu ad75d79f05 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
2007-02-18 23:53:25 +00:00
smontagu%smontagu.org b21d2d6a35 Bug 369236: Move IsBidiFormControl from nsHTMLReflowState to nsBlockFrame. r+sr=roc 2007-02-11 07:19:09 +00:00
cvshook%sicking.cc a39ff30284 Kill remainders of ns(XBL|HTML|XUL|Layout)Atoms. r/sr=jst b=368128 2007-01-30 00:06:41 +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
mats.palmgren%bredband.net 79090c0f4b Rename IsSplittable() to GetSplittableType(). b=349973 r+sr=bzbarsky 2006-12-20 03:52:34 +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
bzbarsky%mit.edu b856b2c477 Back out bug 354600 to fix regressions. 2006-11-19 20:23:56 +00:00
bzbarsky%mit.edu cbcaad14b4 Make block frames that are not kids of blocks automatically have space managers
(and margin roots, except in the columns case) so we don't have to play
whack-a-framestate-flag.  Bug 354600, r+sr=roc
2006-11-16 17:51:53 +00:00
roc+%cs.cmu.edu ae80e3d181 Bug 312963. Apply aTryPull to pulls of inline frames as well as lines. r+sr=dbaron 2006-09-22 02:04:56 +00:00
roc+%cs.cmu.edu a42c58298b relanding fix for bug 317278 :-( 2006-06-29 01:19:48 +00:00
roc+%cs.cmu.edu 1621ac24bd Bug 237085. Move string subdivision code to gfx so we can efficiently make it metrics-dependent. r=smontagu,sr=rbs 2006-06-26 22:18:23 +00:00
roc+%cs.cmu.edu ab87d3edb5 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 2006-06-19 23:06:59 +00:00
roc+%cs.cmu.edu ed0bc93ff0 Backing out patch for 317278 due to Tp regression 2006-06-19 01:29:07 +00:00
roc+%cs.cmu.edu cc52ece1a1 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 2006-06-19 00:02:49 +00:00
roc+%cs.cmu.edu 597d8bc582 Bug 339889. Propagate invalidation through the frame hierarchy to topmost widgets. r+sr=bzbarsky 2006-06-08 01:11:43 +00:00
roc+%cs.cmu.edu a7f03736a9 Bug 328926. Remove aPresContext parameter from nsIFrame::Destroy, nsIFrame::SetInitialChildList and nsIFrame::RemovedAsPrimaryFrame. patch by Marc Liddell, r+sr=roc 2006-04-10 00:16:29 +00:00
roc+%cs.cmu.edu 6428e72efd Bug 282173. Remove BuildFloatList. r+sr=dbaron 2006-04-09 22:56:27 +00:00
dbaron%dbaron.org 0e88f73bc6 Single line comments to describe files (helpful in LXR) 2006-03-29 18:29:03 +00:00
roc+%cs.cmu.edu 0a10a79f62 Bug 330934. Set a nsIFrame's stylecontext in its constructor, to ensure that there's always one available for GetPresContext() to use even if Init hasn't been called. Patch by Marc Liddell, r+sr=roc 2006-03-26 21:30:36 +00:00
pavlov%pavlov.net 131e8794e2 backing out roc's patch for bug 328926 due to crash running tests on vc8 machines. 2006-03-15 06:43:36 +00:00
roc+%cs.cmu.edu 557b089a47 Bug 328926. Remove aPresContext parameter from Destroy and SetInitialChildList. patch by Marc Liddell, r+sr=roc 2006-03-15 03:14:02 +00:00
roc+%cs.cmu.edu c2801ebbd7 Bug 328926. Remove aPresContext from nsIFrame::Init and nsIFrame::DidSetStyleContext. r+sr=roc, patch by Marc Liddell 2006-03-09 18:55:21 +00:00
roc+%cs.cmu.edu f132edee94 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 2006-02-27 04:15:05 +00:00
roc+%cs.cmu.edu 1fac9c6d76 Backing out changes for bug 326944, really this time\! 2006-02-27 04:13:51 +00:00
roc+%cs.cmu.edu bde356f1f5 Backing out changes for bug 326944. 2006-02-27 03:22:03 +00:00
roc+%cs.cmu.edu e344f390f8 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 2006-02-27 02:51:57 +00:00
roc+%cs.cmu.edu b7126ee8e0 Bug 326944. Remove nsIComboboxControlFrame. r+sr=roc, patch by Marc Liddell 2006-02-27 02:33:26 +00:00
uriber%gmail.com c7032d59bb Bug 299065: Bidi resolution needs to split inlines in addition to text frames. r+sr=dbaron 2006-02-21 21:33:47 +00:00
roc+%cs.cmu.edu 77bca74243 Bug 317375. Reorganize frame painting and mouse event targeting around frame display lists. Some review from dbaron, lots of testing help from Martijn, Julien and others 2006-01-26 02:29:17 +00:00
roc+%cs.cmu.edu a710fcd15d Bug 316281. Rework GetContentAndOffsetsFromPoint. r=uriber,sr=roc,patch by Eli Friedman 2005-12-07 23:08:39 +00:00
timeless%mozdev.org 1c34e68034 Bug 106386 Correct misspellings in source code
patch by mats.palmgren@bredband.net r=dbaron sr=dbaron
2005-11-20 22:05:24 +00:00
roc+%cs.cmu.edu 520b30a7f7 Bug 313817. DeCOMtaminate more NS_New*Frame functions. r+sr=roc, patch by Marc Liddell 2005-11-04 02:38:33 +00:00
roc+%cs.cmu.edu fed343c43a Bug 108310. Make GetFrameForPoint take frame-relative coordinates, not bogus relative-to-some-view-or-other, and simplify the signature. r+sr=roc, patch by Eli Friedman. 2005-09-19 02:15:54 +00:00
bzbarsky%mit.edu cf64715ae5 Remove the pointless nsIContent arg of nsIFrame::AttributeChanged. Bug 281390,
patch by Vidar Braut Haarr <vhaarr+bmo@gmail.com>, r+sr=bzbarsky
2005-09-07 16:49:21 +00:00
roc+%cs.cmu.edu f246fa2bbd Bug 280987. Remove aPresContext from nsIFrameDebug::List. r+sr=roc, patch by Vidar Braut Harr. 2005-09-06 21:34:50 +00:00
timeless%mozdev.org f3dd2fbc15 Bug 291436 r:\mozilla\layout\generic\nsBlockFrame.h(628) : warning C4099: 'nsBlockFrame::nsAutoOOFFrameList' : type name first seen using 'struct' now seen using 'class'
r=roc sr=roc a=shaver
2005-06-01 16:28:06 +00:00
bzbarsky%mit.edu b6e9b8ecd1 Fix list renumbering regression. Bug 293070, r+sr+a=dbaron 2005-05-17 03:15:14 +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
bzbarsky%mit.edu f03bac09cc Add an IsFloatContainingBlock() method on nsIFrame, use this in the frame
constructor.  Make sure the div inside an <object> when we do our "we need a
plugin" thing has the space manager bit set.  Bug 283385, bug 285165, bug
286111.  r+sr=roc
2005-03-18 04:13:05 +00:00
bzbarsky%mit.edu 54d585f2af Remove prescontext args for some nsIFrame methods
(Append/Insert/Remove/ReplaceFrames) and for some methods in table land.  Patch
by Vidar Braut Haarr <bugmail@q1n.org>, r+sr=bzbarsky
2005-02-07 01:58:25 +00:00
roc+%cs.cmu.edu 3ff2296f52 Bug 263099. Fix coordinate translation in event handling when finding the relevant line of nested blocks. r+sr=bzbarsky 2005-02-07 01:09:58 +00:00
neil%parkwaycc.co.uk 74e2aa375a Bug 276100 GetOriginToView has unused PresContext argument p=bugmail@q1n.org r+sr=dbaron 2005-01-01 17:26:29 +00:00
bugzilla%arlen.demon.co.uk 3d7261604c Bug 270708 remove nsPresContext variable from AttributeChanged and cleaned up comment in nsIFrame.h
p=bugmail@q1n.org r=pkwarren sr=bzbarsky
2004-12-31 01:13:27 +00:00
roc+%cs.cmu.edu 13a6502805 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 2004-11-25 14:51:00 +00:00
roc+%cs.cmu.edu b7dfbedd1f Changing IsFrameEmpty to IsSelfEmpty as dbaron requested and I forgot to do before checking in. 2004-11-15 05:01:11 +00:00
roc+%cs.cmu.edu fbb67978a5 Bug 261064. Compute static absolute positions more accurately. Also, ensure that static absolutely positioned frames are moved when their placeholders move. Also, ensure that absolutely positioned frames positioned relative to the left or bottom edge of their container move when the container size changes. r+sr=dbaron (rubberstamp) 2004-11-14 20:22:58 +00:00
roc+%cs.cmu.edu c237520c89 Bug 251162. Landing experimental implementation of CSS3 columns. r+sr=dbaron 2004-10-08 12:17:10 +00:00
bryner%brianryner.com f67d250152 Unify box and frame trees by moving nsIBox methods onto nsIFrame. XUL-box frames can call the superclass nsBox implementation, all other frames get the nsFrame implementation of the box methods, which acts like nsBoxToBlockAdaptor used to. Bug 258513, r+sr=roc. 2004-09-28 18:37:50 +00:00
roc+%cs.cmu.edu 3a3ac38479 Bug 257216. Fix sundry block issues for columns. In particular, remove overflowing floats from the space manager before we compute the space manager's XMost and YMost to include in the block size. r+sr=dbaron 2004-09-13 13:35:46 +00:00
roc+%cs.cmu.edu 34a39349e6 Relanding fix for bug 253977, now that state bits prevent GetOverflowLines from being expensive. Fix a few columns-hurting block bugs. 1) Always drain overflow lines on any kind of block reflow. 2) Set NS_FRAME_REFLOW_NEXTINFLOW in the reflow status whenever reflow of the block's next-in-flow is required. 3) Search overflow lines when we're looking for frame continuations to delete. 4) Show overflow area in nsContainerFrame frame dump. r+sr=dbaron 2004-08-26 12:38:50 +00:00
roc+%cs.cmu.edu 5990b839d3 Bug 256937. Use state bits to avoid expensive property lookups in GetOverflowLines/OutOfFlows/Placeholders. r+sr=dbaron 2004-08-26 03:07:05 +00:00
roc+%cs.cmu.edu 01147f5d80 Bug 253977 backout because of possible Tp regression on btek. 2004-08-22 03:50:59 +00:00
roc+%cs.cmu.edu aca07ab169 Bug 253977. Fix a few columns-hurting block bugs. 1) Always drain overflow lines on any kind of block reflow. 2) Set NS_FRAME_REFLOW_NEXTINFLOW in the reflow status whenever reflow of the block's next-in-flow is required. 3) Search overflow lines when we're looking for frame continuations to delete. 4) Show overflow area in nsContainerFrame frame dump. r+sr=dbaron 2004-08-22 03:00:46 +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
aaronleventhal%moonset.net 092ea261a2 Bug 242594. Expose list and list item objects, and bullet text. r=Louie.Zhao, sr=jst/dbaron 2004-06-04 19:28:36 +00:00
smontagu%smontagu.org 82d48e1672 DeCOMtaminate nsIFrame Set/GetProperty and merge Set/GetBidiProperty with it. Bug 117751, r+sr=roc 2004-06-01 06:20:16 +00:00
roc+%cs.cmu.edu 44b2bd59f6 Bug 230417. When a placeholder frame lands in a block's overflowList, put its out of flow frame in a new child list, overflowOutOfFlowsList 2004-05-05 02:30:33 +00:00
gerv%gerv.net 708b56cff4 Bug 236613: change to MPL/LGPL/GPL tri-license. 2004-04-18 14:30:37 +00:00
bzbarsky%mit.edu 04b19c480d Change the way regression tests get the framestate to make it possible to mask
out irrelevant state bits as needed.  Apply this to NS_BLOCK_HAS_LINE_CURSOR.
Bug 237955, r+sr=roc, a=dbaron
2004-04-04 01:48:16 +00:00
dbaron%dbaron.org 41c16857c2 DeCOMify nsIFrame::IsPercentageBase and rename to IsContainingBlock. b=237169 r+sr=bzbarsky a=brendan 2004-03-12 04:40:17 +00:00
roc+%cs.cmu.edu 2ab13be9a5 Fixing bustage, hopefully, THIS TIME 2004-03-07 19:23:53 +00:00
roc+%cs.cmu.edu c7e522958e Bug 51938. Cache recently accessed line if the lines' combinedArea.y/ymosts are nondecreasing --- speeds up painting and event handling on large blocks. r+sr=bzbarsky 2004-03-07 18:04:24 +00:00
bryner%brianryner.com bc74f0b352 More nsIPresContext deCOMtamination (bug 229371). Removed GetBaseURL, rename GetMedium to Medium and inline it, remove virtual style resolution methods that forward to style set (callers will call style set methods directly). Removed PresContext parameter to StyleSet style resolution functions. r+sr=dbaron. 2004-01-28 00:18:22 +00:00
roc+%cs.cmu.edu e7f165c614 Bug 190735. deCOMtaminate nsIFrame::FirstChild and nsIFrame::GetAdditionalChildListName. r+sr=bz 2004-01-09 14:20:53 +00:00
dbaron%dbaron.org 8856db0238 Clean up nsIFrame::IsEmpty signature and move towards making 'white-space' work on inlines. b=191699 r+sr=roc 2003-11-10 23:36:06 +00:00
uid502 d81619b4fa Bug 190735. DeCOMtaminate nsIFrame::GetFrameType. r+sr=bzbarsky 2003-10-31 20:19:18 +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
bzbarsky%mit.edu dc2a9b8f46 Use UnionRect instead of reimplementing it in the block code. Bug 220741,
r+sr=dbaron
2003-10-10 01:12:55 +00:00
kyle.yuan%sun.com 6562d22599 Bug 215220 Unable to receive caret-move event in HTML document
r=aaron, sr=henry.jia
Bug 217311 [ATK Accessibility] wrong text structure for HTML text
r=bolian.yin (Not in the default build)
Bug 218992 no placeholder for broken image
r=bolian.yin (Not in the default build)
This patch aims at solving some ATK accessible text issues. The main parts of this patch (inside accessibility/src/atk directory or the #ifdef MOZ_ACCESSIBILITY_ATK/#endif macro) are not in the default build (it gets built only when the default toolkit set to gtk2)
2003-09-14 12:56:21 +00:00
dbaron%dbaron.org d85698fd40 Remove hint parameter from AttributeChanged methods and simplify style hint mechanism. b=211308 r+sr=bzbarsky 2003-07-11 21:16:12 +00:00
roc+%cs.cmu.edu e7bf73c0d8 Bug 201767. Make nsBlockFrame::GetAdditionalChildListNames return the overflowList. Also, don't create scrollbars in print contexts except for the viewport scrollbar. r+sr=bzbarsky. 2003-04-22 01:33:14 +00:00
bzbarsky%mit.edu 0b85b42edc Fix crash when composer and comboboxes interact. The real fix is in
nsComboboxControlFrame; the nsBlockFrame changes are just cleanup the fix
enables. Bug 197942, r=jkeiser, sr=dbaron.
2003-04-12 16:06:54 +00:00
kyle.yuan%sun.com a8574cad31 Bug 193656 [ATK Accessibility] implement accessible object for block frame
r=aaronl, sr=henry.jia
2003-03-05 02:51:36 +00:00
dbaron%dbaron.org 0ec06d045f 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 2003-02-22 16:19:31 +00:00
dbaron%dbaron.org 6dd68f3c64 Remove nsISizeOfHandler and associated SizeOf methods. b=106792 r=bzbarsky sr=jst 2003-02-22 15:34:38 +00:00
bryner%netscape.com e43f5a49fd Remove nsIStyleContext (bug 114713), r/sr=dbaron. Changed lots of methods to use nsStyleContext* or already_AddRefed<nsStyleContext> as return values, depending on whether a reference is returned. Turn on nsRefPtr (bug 104346), and change nsDerivedSafe to not declare AddRef and Release explicitly virtual, r=jag, sr=dbaron. 2003-02-22 00:32:13 +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
karnaze%netscape.com 0f0042a430 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 2002-12-04 00:58:52 +00:00
dbaron%fas.harvard.edu d7be43384d Fix margin collapsing of margins other than the first child's top margin out of the top of a block. b=44242, 18206 r=roc (mostly) 2002-11-28 19:29:28 +00:00
karnaze%netscape.com 92c3444803 bug 127145 - split blocks with computed heights. a=asa, sr=kin, r=alexsavulov. 2002-10-21 14:54:00 +00:00
karnaze%netscape.com 40902d04df bug 163614 - Changed DeleteChildsNextInFlow to DeleteNextInFlowChild, params, and callers. sr=kin, r=alexsavulov,dcone 2002-10-08 20:35:26 +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
roc+%cs.cmu.edu 1b93fe2b31 Bug 75121. Incrementally reflow absolute frames without doing a resize-reflow of the container. Patch by dbaron and roc. r=dbaron,r=roc,sr=kin 2002-09-24 11:43:48 +00:00
dbaron%fas.harvard.edu e2d870b917 Fix regression causing scrollbars not to be extended by absolutely positioned elements in some cases. Also removed unused |FixParentAndView|. b=154230 r=bzbarsky sr=jst 2002-08-06 12:54:52 +00:00
karnaze%netscape.com b342f8f732 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 2002-07-17 01:48:56 +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 8458aad931 bug 151620 - always use quirk line-height inside a td. sr=waterson, r=dbaron. 2002-06-19 22:28:47 +00:00
rods%netscape.com 89bbd44ace Add PR_LOGGING for printing
Bug 121622 r=dcone sr=kin
2002-06-19 21:51:13 +00:00
karnaze%netscape.com 29f4ff0184 bug 148245 - only split floaters when printing if the height is constrained, never split floating first letters. sr=waterson 2002-06-14 14:30:33 +00:00
karnaze%netscape.com 1faf4c0592 bug 145305 - split floaters during printing. sr=attinasi, r=alexsavulov. 2002-05-28 22:50:43 +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
waterson%netscape.com d572531e5b Bug 138057. Eliminate nsBlockFrame::RememberFloaterDamage, instead recording the damage when we reflow the floater. This allows us to catch several cases that we weren't catching before, so we no longer need to dirty all the line boxes when an incremental reflow targeted at a float arrives. r=dbaron, sr=attinasi. 2002-04-26 19:19:39 +00:00
karnaze%netscape.com 2b094e1eca bug 128804 - moved optimization of text controls to nsBlockReflowState and initialized it earlier. a=dbaron, sr=attinasi, r=alexsavulov. 2002-03-12 15:48:52 +00:00
dbaron%fas.harvard.edu a293c9dc19 Bug 117374: nsBlockFrame::UpdateSpaceManager is no longer needed since nsBlockReflowState::RecoverFloaters does the same work.
Bug 113895:  Pass |aDeltaY| as 0 for recursive calls to RecoverFloaters.
b=117374  r=attinasi  sr=waterson
2002-01-06 18:14:00 +00:00
waterson%netscape.com f60b980b7f Bug 116230 et al; fix-on-a-fix for bug 91423. Don't always retarget to the primary frame: stop at the first continuation after a hard-break if there is one. Also, move retargeting to reflow state setup. r=rbs, sr=nobody. 2002-01-05 01:42:36 +00:00
waterson%netscape.com f072fdfb99 Bug 117769. Remove vestigial |aStopPulling| parameter from nsBlockFrame::PullFrameFrom; clean up surrounding logic. r=dbaron, sr=attinasi. 2002-01-02 22:10:13 +00:00
waterson%netscape.com 854831c91c Bug 115113. Eliminate nsIReflowCommand, and just use nsHTMLReflowCommand directly. r=karnaze, sr=attinasi. 2001-12-17 22:39:59 +00:00
evaughan%netscape.com b5e2981ee1 Facelift for nsBoxToBlockAdaptor -r hyatt -sr waterson #110328
Grid memory leak -r naving -sr hewitt #109490
2001-12-03 23:41:13 +00:00
bzbarsky%mit.edu f2ee8260a0 Use NS_LITERAL_STRING instead of NS_ConvertASCIItoUCS2 where possible
(i.e. where the string is a literal).  Bug 104159, r=jag, sr=alecf
2001-11-14 01:33:42 +00:00
rods%netscape.com cff42fbac8 Oops, I didn't mean to check this in, removing my change to turn it on again 2001-11-04 03:40:27 +00:00
rods%netscape.com 37a4501149 Initial check in for print preview work it is complied in for Windows and linix only
The bulk of print preview can be turned on/off with NS_PRINT_PREVIEW define
Bug 107562 r=kmcclusk sr=attinasi
2001-11-03 14:59:39 +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
gerv%gerv.net 4e12e44b2f Relicensing Round 1, Take 2. Most C-like NPL files -> NPL/GPL/LGPL. Bug 98089. 2001-09-28 20:14:13 +00:00
karnaze%netscape.com e908dd0313 bug 68998 - added extra param to Paint, PaintChild, PaintChildren used by tables in standard mode. sr=waterson, r=alexsavulov. 2001-09-19 12:35:19 +00:00
hyatt%netscape.com 62d3de24fd Fix for 95475. r=jag, sr=ben, a=dbaron 2001-08-25 02:01:08 +00:00
dbaron%fas.harvard.edu fc01a17366 Make the width of floats with |width: auto| depend only on the width of the containing block and the contents of the float and not on the available space. Remove the loop calling ReflowFloater at different positions that is no longer needed, and remove the caching of the max element size for that loop that was not being invalidated correctly between reflows. Fix handling of margin, border, and padding for computation of available width for |width: auto| floaters. r=attinasi sr=waterson b= 85876, 82314, 82315, 85216, 85874, 86746 2001-07-19 02:33:43 +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 b55568be36 Bug 59200. Merge floater reflow and placement into FlowAndPlaceFloater() to deal with the fact that a floater may need to be reflowed as its 'pushed' to a new location. For auto-width floaters, ensure that the floater is not flowed at a width less than its max-element-size. Enforce CSS2 section 9.5.1 rule [2] by maintaining mLastFloaterY in the reflow state. r=rbs, sr=attinasi. 2001-05-21 23:03:46 +00:00
rbs%maths.uq.edu.au cd754102d3 Change the place where the ascent is grabbed in the case where the first line is a block. Needed to fix bug=78389 r=waterson 2001-05-19 09:53:59 +00:00
mjudge%netscape.com 62aec426fa 62971 sr= hyatt r=kin/waterson fix for changing how we find the line given an event point
this will now do a binary search muuuch faster worst case than before
2001-05-11 08:04:29 +00:00
waterson%netscape.com 7567c5e94d Bug 76727. Remove redundancy from BRS_ISINLINEINCRREFLOW optimization; take advantage of existing control flow. Also, correct misc misspelling. r=rbs@maths.uq.edu.au; sr=attinasi@netscape.com 2001-05-03 20:11:50 +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
waterson%netscape.com 31af8a6d5d Bugs 76721, 76724. Remove vestigial |aDeltaY| argument from RecoverStateFrom() methods. Remove redundant implementation of GetAvailableSpace(). r=dbaron, sr=attinasi. 2001-04-28 02:34:58 +00:00
attinasi%netscape.com 6bec8d8990 b=70731 r=dcone sr=waterson - fixes crasher while printing 2001-03-14 06:45:41 +00:00
rods%netscape.com 1c8f290f5d Don't paint blocks that shouldn't be painted when printing
Bug 67296 r=kmcclusk sr=attinasi
2001-03-08 02:46:44 +00:00
waterson%netscape.com f5d1d74918 Bug 71181. Revert attinasi's changes for bug 70730. 2001-03-07 20:15:35 +00:00
attinasi%netscape.com 2026961bdd Fix for printing crash when bulleted items have no bullet and we assume they do. Added assertion to help find the cause of the problem, and checks for null to prevent the crash. b=70730 r=dcone sr=waterson 2001-03-07 00:38:45 +00:00
rbs%maths.uq.edu.au 2b65370bf6 Shift frame-state bits in implementations to the 12 higher bits - bug 68411 r=karnaze sr=waterson 2001-02-23 12:42:12 +00:00
buster%netscape.com a017796f68 bug 45152 (Typed text does not render in TextAreas with a horizontal scrollbar)
fixed by adding a flag in nsLineBox for the content of a line to mark it "forceInvalidate",
logic in nsLineLayout to set the line dirty for initial reflow of text frames,
and logic in block to check the new flag.
r=kin
2000-08-24 04:26:43 +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 1a2ffa3da2 Bug 44709. Maintain renumbering depth on stack, instead of in a global. r=roc+moz@cs.cmu.edu 2000-07-28 09:02:34 +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
dbaron%fas.harvard.edu d05d4bef76 Fix bug 43882 (dogfood+) by removing special handling of empty P elements. (Most of the diffs are whitespace changes.) This also fixes bugs 43369, 43991, and 18050. However, it exposes a few other issues as well (the most important of which, nuking top margins on first *normal flow* children of BODY and TD, was previously fixed only in some cases, but shouldn't be hard to fix in general). r=waterson 2000-06-29 22:03:42 +00:00
buster%netscape.com 9665a1c5fa fixed bug 41757
file also contains some debug only code (disabled), another bug fix (also disabled), the removal of
some obsolete code that was already #ifdef'd out, and a bunch of new comments
r=mjudge, waterson
2000-06-11 22:14:33 +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
buster%netscape.com c1c9bfa09b effectively removed area frame
work troy was holding in his tree
r=buster
2000-05-09 05:11:12 +00:00
troy%netscape.com a8143dd431 b=36202 Patch from roc+moz@cs.cmu.edu that makes sure we invalidate if
necessary when pulling up frames
2000-04-19 03:12:13 +00:00
troy%netscape.com e7c5adfb56 Made FindLineFor() public because I need to call it from the HTML reflow
state code
2000-04-14 04:05:58 +00:00
buster%netscape.com 1c6eca645a bug 29595 (and others)
fixes layout of pages where a single line is impacted by 2 or more floaters
r=troy
2000-03-22 23:19:10 +00:00
dbaron%fas.harvard.edu 87e19c9cef Fix event targetting bugs by using paint layers in GetFrameForPoint, testing for visibility, and trying GetFrameForPoint on additional views if one fails. r=joki@netscape.com(, hyatt@netscape.com) b=12232,20051,21304,24474,26785, and remaining issues from 23161. 2000-03-22 02:43:08 +00:00
troy%netscape.com 8a78d916a5 b=21657 a=chofmann@netscape.com Made "overflow list" a full fledged
child list and changed ReparentFrameView() to check it.
2000-01-22 01:16:50 +00:00
nisheeth%netscape.com 56525e3574 r=troy. Reflow commands are now coalesced by block and inline frames. This fixes bug 985 in which we now generate 6 reflow commands instead of 257. 2000-01-12 08:28:24 +00:00
troy%netscape.com f08e81815b More work on getting block frames to incrementally update their
maximum width
2000-01-08 03:58:27 +00:00
hyatt%netscape.com de2eaede42 Implementing a generalized recycler and arena for all layout frames. Hoping to improve
bug #9489.  Should also definitely fix bug #15916. r=troy
1999-12-04 23:49:50 +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 ef6a9e0b86 r=troy; remove another 4 bytes from each block frame for a total of 10% today :-) 1999-11-03 00:42:12 +00:00
kipp%netscape.com f6d66c6b92 r=troy; Shrink block frames by 4 bytes per instance by making the overflow-lines instance variable a frame property 1999-11-02 23:42:52 +00:00
troy%netscape.com 1585a751fb Moved a bunch of stuff out to a nsIFrameDebug interface 1999-11-01 22:12:45 +00:00
kipp%netscape.com 0a512d8393 r=troy; reworked the way that blocks inside of inline elements are handled. It's all in the frame construction code now (bugs 15999, 16737) 1999-11-01 15:24:57 +00:00
troy%netscape.com 87afecabc0 Changed SetView/GetView to take an additional argument which is the
pres context
1999-10-26 04:44:41 +00:00
kipp%netscape.com a5c69dc5af Fixed O(N^2) debug logic bug; speed up paint loop by avoiding painting too much now that we have combined-area (bug 7455, 12297) 1999-10-19 23:04:19 +00:00