53 Commits

Author SHA1 Message Date
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
dbaron%fas.harvard.edu
7bb7b59a69 Replace uses of overloaded |fputs| and most uses of |ns[C]String::ToCString|. b=104763 r=jag rs=scc
git-svn-id: svn://10.0.0.236/trunk@105460 18797224-902f-48f8-a5cc-f745e15eee43
2001-10-16 03:53:44 +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
dbaron%fas.harvard.edu
890ce3eef5 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
git-svn-id: svn://10.0.0.236/trunk@99561 18797224-902f-48f8-a5cc-f745e15eee43
2001-07-19 02:33:43 +00:00
waterson%netscape.com
e26708f220 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.
git-svn-id: svn://10.0.0.236/trunk@95630 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-21 23:03:46 +00:00
erik%netscape.com
128be24867 bug 74587; author=simon@softel.co.il; r=attinasi; sr=erik; fix for a
crasher in IBMBIDI-ifdeffed code for bidi documents


git-svn-id: svn://10.0.0.236/trunk@93677 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-02 22:13:29 +00:00
erik%netscape.com
3cb907b335 fixing build bustage in IBMBIDI ifdef on Mac
git-svn-id: svn://10.0.0.236/trunk@92443 18797224-902f-48f8-a5cc-f745e15eee43
2001-04-16 21:32:19 +00:00
erik%netscape.com
dc9f2947a7 bug 71370; author=simon@softel.co.il; r=attinasi; sr=erik; implement bidi
(bidirectional text) for languages such as Arabic and Hebrew; from IBM bidi
project; not part of build yet (due to #ifdef IBMBIDI)


git-svn-id: svn://10.0.0.236/trunk@89069 18797224-902f-48f8-a5cc-f745e15eee43
2001-03-09 03:29:00 +00:00
dbaron%fas.harvard.edu
5f0a7ab9bd Remove trailing semicolons after all uses of MOZ_DECL_CTOR_COUNTER to quiet build warnings on Mac. b=60415 a=brendan@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@85654 18797224-902f-48f8-a5cc-f745e15eee43
2001-01-27 23:06:33 +00:00
rods%netscape.com
a6e0d47c5a removing most all NS_DEFINE_IID and replacing them with NS_GET_IID macros
Bug 61274, r=buster sr=waterson


git-svn-id: svn://10.0.0.236/trunk@84377 18797224-902f-48f8-a5cc-f745e15eee43
2001-01-04 20:44:42 +00:00
dbaron%fas.harvard.edu
0e283e8c8c Make destructors that exist only for MOZ_COUNT_DTOR be #ifdef NS_BUILD_REFCNT_LOGGING instead of #ifdef DEBUG so the leak stats on optimized builds are correct. r=waterson@netscape.com sr=brendan@mozilla.org b=62421
git-svn-id: svn://10.0.0.236/trunk@83772 18797224-902f-48f8-a5cc-f745e15eee43
2000-12-16 18:56:06 +00:00
warren%netscape.com
a8b9664a8c Bug 47207. Backing out logging/PRINTF changes until we can fix stopwatch.h, introduce double parens, etc.
git-svn-id: svn://10.0.0.236/trunk@81967 18797224-902f-48f8-a5cc-f745e15eee43
2000-10-28 22:17:53 +00:00
warren%netscape.com
c6b67eceeb Bug 47207. Changing printf to PRINTF to use new logging facility. r=valeski,sr=waterson
git-svn-id: svn://10.0.0.236/trunk@81885 18797224-902f-48f8-a5cc-f745e15eee43
2000-10-27 22:43:51 +00:00
anthonyd%netscape.com
8febe65f8c warning fixes for linux. r: mjudge a: beppe
git-svn-id: svn://10.0.0.236/trunk@72446 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-16 22:28:10 +00:00
anthonyd%netscape.com
8e4f929fe8 avoiding confusion between line iterator between layout and navigation.
if you want a line iterator for navigation you must explicitly ask for one.


git-svn-id: svn://10.0.0.236/trunk@70013 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-16 08:11:14 +00:00
anthonyd%netscape.com
20e7680b7c r:mjudge
fix for bug# 29785, keyboard navigation of tables in editor
not completely fixed, tables with row|column span do not navigate correctly


git-svn-id: svn://10.0.0.236/trunk@69124 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-11 01:04:39 +00:00
buster%netscape.com
bf63049426 bug 29595 (and others)
fixes layout of pages where a single line is impacted by 2 or more floaters
r=troy


git-svn-id: svn://10.0.0.236/trunk@63783 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-22 23:19:10 +00:00
troy%netscape.com
d4f29d1b5f Now line boxes are allocated out of the pres shell arena. This reduces the
overhead of memory allocation, and it gets us recycling which speeds up
resize reflows


git-svn-id: svn://10.0.0.236/trunk@62680 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-12 03:00:51 +00:00
buster%netscape.com
3786b45405 added an assertion that will catch regressions associated with bug 25510
r=troy
a=jar


git-svn-id: svn://10.0.0.236/trunk@61439 18797224-902f-48f8-a5cc-f745e15eee43
2000-02-22 22:05:04 +00:00
pp%ludusdesign.com
a2927ce43e Converting ::GetIID() into NS_GET_IID(). Bug #20232. r=scc, r=mozbot
git-svn-id: svn://10.0.0.236/trunk@59537 18797224-902f-48f8-a5cc-f745e15eee43
2000-02-02 22:24:56 +00:00
troy%netscape.com
f06fedd7c3 b=22692 Changed RemoveFloater() to return PR_FALSE if the floater is
associated with that line


git-svn-id: svn://10.0.0.236/trunk@59134 18797224-902f-48f8-a5cc-f745e15eee43
2000-01-29 00:17:04 +00:00
troy%netscape.com
7ecb959a88 More work on getting block frames to incrementally update their
maximum width


git-svn-id: svn://10.0.0.236/trunk@57170 18797224-902f-48f8-a5cc-f745e15eee43
2000-01-08 03:58:27 +00:00
troy%netscape.com
1fce58468f Work-in-progress for having maximum width (needed by tables) be updated
incrementally


git-svn-id: svn://10.0.0.236/trunk@56615 18797224-902f-48f8-a5cc-f745e15eee43
1999-12-30 04:15:45 +00:00
tbogard%aol.net
ae5a81e394 Changed nsIPresContext& to nsIPresContext*. Changed nsEventStatus& to nsEventStatus*. Now more compatible with XPIDL. a=vidur r=scc
git-svn-id: svn://10.0.0.236/trunk@54392 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-24 06:03:41 +00:00
dmose%mozilla.org
92d791b7b0 updated license boilerplate to xPL 1.1, a=chofmann@netscape.com,r=endico@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@52908 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 03:40:37 +00:00
kipp%netscape.com
e4bab0a0e6 r=troy; Shrink block frames by 4 bytes per instance by making the overflow-lines instance variable a frame property
git-svn-id: svn://10.0.0.236/trunk@52613 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:42:52 +00:00
troy%netscape.com
3513334988 Moved a bunch of stuff out to a nsIFrameDebug interface
git-svn-id: svn://10.0.0.236/trunk@52427 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-01 22:12:45 +00:00
kipp%netscape.com
5f8b23824a r=troy; api changes for 12958, 12760 and preperations for 17377
git-svn-id: svn://10.0.0.236/trunk@52214 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-29 14:35:36 +00:00
troy%netscape.com
bd46e7911f Changed SetView/GetView to take an additional argument which is the
pres context


git-svn-id: svn://10.0.0.236/trunk@51822 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 04:44:41 +00:00
kipp%netscape.com
9c72c46de9 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)
git-svn-id: svn://10.0.0.236/trunk@51207 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-19 23:04:19 +00:00
kipp%netscape.com
18e9b9d2f5 r=troy; Reworked nsLineBox api to allow for reduced storage overhead; fixed bug 16252 while keeping bug 12709 fixed
git-svn-id: svn://10.0.0.236/trunk@50704 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-14 23:10:03 +00:00
kipp%netscape.com
28bd74e177 r=troy; Cleaned up line-box API (prep work for bug #12297; more coming); Support new line iterator API change (#16176)
git-svn-id: svn://10.0.0.236/trunk@50505 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-12 23:24:22 +00:00
kipp%netscape.com
e18af2d0ee Cleanup moz-decl-counter usage and fix NS_LOG_ADDREF usage
git-svn-id: svn://10.0.0.236/trunk@50239 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-08 20:41:19 +00:00
troy%netscape.com
bd5ca95ced Added SizeOf() handler for floater information maintained by the
line box


git-svn-id: svn://10.0.0.236/trunk@49644 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-02 02:51:03 +00:00
kipp%netscape.com
dce1fb8e52 Tweaked list logic
git-svn-id: svn://10.0.0.236/trunk@48434 18797224-902f-48f8-a5cc-f745e15eee43
1999-09-21 00:12:27 +00:00
kipp%netscape.com
a293a6d95d Fixed various incremental reflow bugs (1764,12890,1910,2222) and list bullet painting bug (10675,13599)
git-svn-id: svn://10.0.0.236/trunk@47481 18797224-902f-48f8-a5cc-f745e15eee43
1999-09-15 00:28:10 +00:00
kipp%netscape.com
c9002f20df Reimplemented SizeOf methods in some of the frame classes; partial rework of first-line handling snapshot
git-svn-id: svn://10.0.0.236/trunk@45274 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-31 03:09:40 +00:00
troy%netscape.com
1604aaf744 Changed block frame code to cache the max element width. This enables
us to ask for the maxElementSize when doing an incremental reflow


git-svn-id: svn://10.0.0.236/trunk@44957 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-28 00:39:55 +00:00
troy%netscape.com
947927e816 Renamed DeleteFrame() to Destroy()
git-svn-id: svn://10.0.0.236/trunk@40585 18797224-902f-48f8-a5cc-f745e15eee43
1999-07-22 02:24:52 +00:00
kipp%netscape.com
facecde26e Fixed typo
git-svn-id: svn://10.0.0.236/trunk@31367 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-13 01:52:52 +00:00
kipp%netscape.com
5f104cccc6 Updated line iterator impl to match API in nsILineIterator
git-svn-id: svn://10.0.0.236/trunk@31355 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-13 00:54:28 +00:00
kipp%netscape.com
f92577dd6d Beginnings of a line iterator
git-svn-id: svn://10.0.0.236/trunk@31002 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-10 22:28:49 +00:00
troy%netscape.com
87a1db0805 Added GetFrameType() and renamed GetAnchoredItem() to GetOutOfFrameFlow()
git-svn-id: svn://10.0.0.236/trunk@28837 18797224-902f-48f8-a5cc-f745e15eee43
1999-04-23 14:34:48 +00:00
kipp%netscape.com
0a4bbc01a8 Tweaked FindLineContaining to return the index in the line where the frame is found
git-svn-id: svn://10.0.0.236/trunk@28328 18797224-902f-48f8-a5cc-f745e15eee43
1999-04-20 21:52:22 +00:00
kipp%netscape.com
f7b33a7782 Removed some debris
git-svn-id: svn://10.0.0.236/trunk@26155 18797224-902f-48f8-a5cc-f745e15eee43
1999-04-03 18:57:51 +00:00
kipp%netscape.com
aeeeb5bb86 Removed carried-out-top-margin
git-svn-id: svn://10.0.0.236/trunk@25296 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-27 01:24:24 +00:00
kipp%netscape.com
83f5d0de70 Spanked to collapse inline-reflow with line-layout into line-layout; fixed bugs #1278, #1990, #3527, #1670, etc.
git-svn-id: svn://10.0.0.236/trunk@24321 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-18 21:03:25 +00:00
kipp%netscape.com
3a72fd18c3 Output rects in twips
git-svn-id: svn://10.0.0.236/trunk@22846 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-05 04:26:40 +00:00
troy%netscape.com
bd78450e96 Changed GetNextSibling() to use a pointer argument instead of a reference
git-svn-id: svn://10.0.0.236/trunk@20223 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-10 06:13:38 +00:00
kipp%netscape.com
4e355995e6 Spanked away SizeOf methods and nsIListFilter
git-svn-id: svn://10.0.0.236/trunk@17895 18797224-902f-48f8-a5cc-f745e15eee43
1999-01-16 00:00:50 +00:00