Commit Graph

639 Commits

Author SHA1 Message Date
dbaron@fas.harvard.edu
d3f01c8c10 Remove unnecessary XPCOM interface around nsSpaceManager. b=102453 r=jag sr=waterson 2001-10-26 05:06:07 +00:00
dbaron@fas.harvard.edu
4b1de618fc 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
58d409fba9 Relicensing Round 1, Take 2. Most C-like NPL files -> NPL/GPL/LGPL. Bug 98089. 2001-09-28 20:14:13 +00:00
waterson@netscape.com
60f3d8f316 Bug 96228. Make nsContainerFrame::PositionFrameView position _only_ the frame's view (don't recur). Explicitly call nsContainerFrame::PositionChildViews as appropriate when moving a frame post-Reflow. Consolidate view positioning logic duplicated between PositionFrameView and SyncFrameViewAfterReflow, which now correctly computes offset for anonymous view in nsScrollFrame and accounts for scrolled views. r=kmcclusk,karnaze sr=attinasi 2001-09-21 00:53:29 +00:00
waterson@netscape.com
e8403a2f92 Bug 55086. Change nsContainerFrame::PositionFrameView() to position child views. Eliminate the |aView| parameter from that method, because the view can be retrieved from the frame and need not be done by the caller. Eliminate the NS_FRAME_NO_MOVE_CHILD_VIEWS flag, which was read-only; i.e., never set by anyone. r=dbaron, sr=attinasi 2001-09-05 20:27:19 +00:00
dbaron@fas.harvard.edu
b46d1c0dfe 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
c156662a18 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
hyatt@netscape.com
dfdfa14592 Fix for 78695 (rule matching improvements). r/sr=attinasi, jst, waterson 2001-05-31 22:19:43 +00:00
waterson@netscape.com
888d51e4cf 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
waterson@netscape.com
7b3f285e70 Bug 77414. Break nsBlockReflowState out into its own files. sr=attinasi 2001-05-01 04:22:57 +00:00
waterson@netscape.com
80f69418e0 Remove everything but nsBlockReflowStat implementation, part 2. Not part of the build. 2001-05-01 03:43:41 +00:00
waterson@netscape.com
1efb0dc299 Remove everything but nsBlockReflowStat implementation, part 1. Not part of the build. 2001-05-01 03:41:11 +00:00
waterson@netscape.com
537e5b49d8 Bug 76885. Removed redundant test from nsBlockFrame::ReflowDirtyChild(). sr=attinasi 2001-04-29 21:58:50 +00:00
waterson@netscape.com
ed2bf7bfe0 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
hyatt@netscape.com
e797066f13 Fix for 77002. reviewers=jst,waterson,hixie,shaver,brendan,pavlov 2001-04-25 19:52:49 +00:00
attinasi@netscape.com
ef562af20f Fixed some bad code that was updating list position incorrectly when going from outside to inside. b=59086, r=karnaze@netscape.com sr=waterson@netscape.com 2001-04-09 23:13:31 +00:00
timeless@mac.com
5197e93c42 fix Bug 70989 Clean up lots of "shadows" and other common warnings
r=peterv, jst, ducarroz, edburns. sr=jst, shaver
2001-03-21 05:32:22 +00:00
attinasi@netscape.com
a22ff40e2a b=70731 r=dcone sr=waterson - fixes crasher while printing 2001-03-14 06:45:41 +00:00
erik@netscape.com
d24bee0abc 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)
2001-03-09 03:29:00 +00:00
rods@netscape.com
4437d5acc9 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
15f3f616b3 Bug 71181. Revert attinasi's changes for bug 70730. 2001-03-07 20:15:35 +00:00
attinasi@netscape.com
fa42e93e4f 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
pierre@netscape.com
5f165d8dc9 Reinstate my changes that were backed out 10 days ago. #43457 split nsStyleSpacing into 4 smaller structures: nsStyleBorder, nsStylePadding, nsStyleMargin, nsStyleOutline. r=attinasi,sr=buster. 2001-02-07 09:57:26 +00:00
waterson@netscape.com
6d4a3bc1a0 Bug 67796. Don't update aMetrics.mMaximumWidth or .maxElementSize in ComputeFinalSize(): the maxElementSize computation was wrong, and it's not clear that the mMaximumWidth is safe to update here either. Patch from rbs@maths.uq.edu.au, r=waterson, sr=karnaze 2001-02-07 04:05:59 +00:00
rbs@maths.uq.edu.au
0c1149a6fb Fix for shift/jump/overlap in the incremental reflow of tables containing text-inputs and images. Bug 45562 and related dups. sr=waterson@netscape.com 2001-02-06 04:42:31 +00:00
attinasi@netscape.com
c92101b3ca Floated list items are now handled correctly. b=32200, r=buster sr=waterson 2001-02-02 21:17:01 +00:00
dbaron@fas.harvard.edu
4406e180e7 Checking back in change (rev. 3.410) that was mistakenly backed out (in rev. 3.411):
bug 13553 (Table doesn't render properly)
patch submitted by bernd.mielke@snafu.de
r=waterson
sr=buster
2001-01-28 17:00:19 +00:00
rods@netscape.com
a1ed5b3a4f This checkin enables mozilla to support the printing of selection, the printing of page ranges, and
the printing of headers and footers.
Printing of selection is implemented by the frames figuring out if they are in the selection and painting
if they or not they they don't paint. This also only allows the printing of the first page of
selections, alothough it is well documented where this is implemeted so it can be removed.
Bugs 63426, 31218, 61075 r=dcone,kmcclusk,erik,buster sr=waterson
2001-01-27 14:09:34 +00:00
mcafee@netscape.com
99b5642905 Backing out pierre's change from 1/20 for performance reasons (66263). r=attinasi, a=granrose, phil 2001-01-25 02:58:12 +00:00
buster@netscape.com
eab886d833 bug 13553 (Table doesn't render properly)
patch submitted by bernd.mielke@snafu.de
r=waterson
sr=buster
2001-01-22 22:10:05 +00:00
pierre@netscape.com
37a4efae45 #43457 split nsStyleSpacing into 4 smaller structures: nsStyleBorder, nsStylePadding, nsStyleMargin, nsStyleOutline. Review=attinasi. Pending Approval: buster. 2001-01-20 22:46:54 +00:00
dbaron@fas.harvard.edu
618fd5b917 Clean up easily fixed unnecessary includes and exports of implementation header files in layout. b=63766 r=jst@netscape.com sr=buster@netscape.com 2000-12-30 19:22:22 +00:00
heikki@netscape.com
b0660c3e5a Bug 59675, fixing uninitialized variables. r=jst, a=waterson. 2000-11-27 23:23:28 +00:00
buster@netscape.com
6cf577d881 My previous check-in had an important line accidentally commented out. This just re-enables that line. This fixes bug 58257 2000-10-30 04:48:53 +00:00
buster@netscape.com
b123511b25 accidentally checked this in with a debug flag turned on that wrote a bunch of output to stdout. turned off. 2000-10-30 04:10:44 +00:00
warren@netscape.com
0462ea4ce8 Bug 47207. Backing out logging/PRINTF changes until we can fix stopwatch.h, introduce double parens, etc. 2000-10-28 22:17:53 +00:00
warren@netscape.com
7730ce0cd3 Bug 47207. Changing printf to PRINTF to use new logging facility. r=valeski,sr=waterson 2000-10-27 22:43:51 +00:00
buster@netscape.com
b05fac746b bug 57596 (crash caused by reframing XBL reparented explicit children)
fix by rickg
r=buster
a=waterson
2000-10-27 14:14:36 +00:00
buster@netscape.com
dae362259d backed out my/waterson's potential fix for bug 43914
this fixes bug 56102
a=waterson
2000-10-12 20:30:43 +00:00
buster@netscape.com
dad6bae662 bug 29276 (text inside <label> tags within a table cell breaks out of table cell)
bug 1164 (ALIGN=MIDDLE and ALIGN=ABSMIDDLE values are not being supported)
bug 54119 (percentage (%) image (img) heights do nothing)
r=karnaze, rods, attinasi
a=waterson
2000-10-09 21:19:36 +00:00
mjudge@netscape.com
f29558cf44 fixing 34356. hack to get clickng before table working beta3+ 2000-09-15 07:02:05 +00:00
buster@netscape.com
3e1d0a40da bug 18445
r=karnaze
This bug fixes the way we treat placement of replaced inline elements when
they have display:block.
2000-09-15 06:20:07 +00:00
buster@netscape.com
d67e9fc970 bug 14280
nsTextTransformer.cpp.
  I moved where we translate the nbsp to a (ascii 32 space character) until after the i18n routines are called, so they can properly account
  for the space as non-breaking and therefore part of the first word in the block.

bug  39901 and 38396
  nsHTMLImageLoader.*, nsImageFrame.cpp
  I backed out the bad fix for 38396, and put in a new fix where I store a little state in the image loader flags for cases where the image
  gets an unconstrained reflow and has %-based width.  This does not handle %-based min-width or max-width, that would be a separate
  bug that I'll file shortly.  But this fixes the vast majority of real cases out there.

bug  18754
  nsHRFrame.cpp, quirks.css, nsCSSFrameConstructor.cpp, last part of nsLineLayout.cpp
  in quirks mode, I changed HR from a block element to a replaced inline element that acts like a block, using generated content to get
  newlines before and after the HR.  This isn't ideal, but it gets us backwards compatibility, and ian and dbaron have blessed the approach.

bug  50257
  nsLineLayout.cpp
  Did a couple of things in here:
       * The actual fix is controlled by FIX_BUG_50257 #define symbol.  This basically says that an break (BR) will always fit on a line.
         A more general solution would probably be to round up to the nearest pixel, and if the thing is less than a pixel make it fit on a
         line.  This is a wimpier, safer solution.
       * I noticed that the way we got the compatibility mode was way out of date, very wasteful.  So I fixed that.
       * I noticed that there were a bunch of redundant SetFlag calls.  Since the flag variable is initialized to 0, setting a flag to 0 on a newly
         created object is a waste.

  nsBlockFrame.cpp  --  just added a comment to some odd looking code, to make sure no one comes along later and breaks it
2000-09-11 21:15:02 +00:00
buster@netscape.com
c639e1a5a5 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
dbaron@fas.harvard.edu
4db5e63db6 Don't apply top margin to a block containing only floaters. Let it collapse through instead. b=44419
Only do the quirky fix for bug 37657 for tables, not all blocks.  b=43086
r=buster@netscape.com
2000-09-04 21:44:48 +00:00
buster@netscape.com
ef91ca7b14 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
018edcc1cd 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
e44caf1a76 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
0909469319 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
f24f8b81bd 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