r=sfraser
a=waterson
We now invalidate the line explicitly if text-align:right is set, because
our incremental painting is biased towards frames that grow to L2R. This
is a heavy-handed workaround, but it ends up doing very little extra invalidation,
and uses an already existing mechanism by just setting an existing flag.
git-svn-id: svn://10.0.0.236/trunk@79722 18797224-902f-48f8-a5cc-f745e15eee43
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
git-svn-id: svn://10.0.0.236/trunk@78763 18797224-902f-48f8-a5cc-f745e15eee43
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.
git-svn-id: svn://10.0.0.236/trunk@78755 18797224-902f-48f8-a5cc-f745e15eee43
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
git-svn-id: svn://10.0.0.236/trunk@77051 18797224-902f-48f8-a5cc-f745e15eee43
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
git-svn-id: svn://10.0.0.236/trunk@66201 18797224-902f-48f8-a5cc-f745e15eee43
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
2) Don't use strings when I can use atoms.
3) Fix bug 28472 by correcting error in earlier checkin.
r=buster@netscape.com
git-svn-id: svn://10.0.0.236/trunk@63109 18797224-902f-48f8-a5cc-f745e15eee43
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
git-svn-id: svn://10.0.0.236/trunk@60795 18797224-902f-48f8-a5cc-f745e15eee43
shrink wrap its width (paying attention to the maximum computed width). Mostly
complete implementation for block frames
git-svn-id: svn://10.0.0.236/trunk@56652 18797224-902f-48f8-a5cc-f745e15eee43
nsLineLayout::ReflowFrame() now sets some of the psd flags before
calling aFrame->Reflow().
r=troy@netscape.com,norris@netscape.com a=chofmann@netscape.com
git-svn-id: svn://10.0.0.236/trunk@55853 18797224-902f-48f8-a5cc-f745e15eee43
We no longer use nsIAraeFrame and now it's folded into the overflow
area in the reflow metrics
git-svn-id: svn://10.0.0.236/trunk@55424 18797224-902f-48f8-a5cc-f745e15eee43