Implementing inline-block and inline-table correctly requires that we be able to get multiple baselines for the same piece of content, since inline-block uses a last-line-baseline of blocks and inline-table (like tables) uses a first-line-baseline of blocks.
Doing this given our current mAscent mechanism seems difficult,
since currently reflow returns a single mAscent in the reflow
metrics. The single mAscent also doesn't work very well for a bunch
of the interesting cases defined in the spec, such as getting the
baseline of the second block if the first block is empty.
So I plan to rewrite the way we compute baselines, at least for
things other than text and inlines. Roughly (I haven't looked too
closely yet), my plans are to:
1. Either remove mAscent from nsHTMLReflowMetrics (which, IIRC,
might simplify some of the form control reflow methods) or stop
requiring that it be set for anything other than text and inline
frames (the frames for which we set mComputedWidth to
NS_UNCONSTRAINEDSIZE).
2. add virtual methods to nsIFrame to get the various pieces of
information that are needed.
I plan to look into this in some more detail in the relatively near
future.
-David
--
L. David Baron <URL: http://dbaron.org/ >
Technical Lead, Layout & CSS, Mozilla Corporation
pgpjtMdDD9z0z.pgp
Description: PGP signature
_______________________________________________ dev-tech-layout mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-layout

