Done now. But I didn't look at inline-container! On 07.03.2008 08:03:36 Jeremias Maerki wrote: > Thanks for the feedback. I'll probably look into it during the weekend. > > On 06.03.2008 17:55:40 Andreas Delmelle wrote: > > On Mar 6, 2008, at 10:26, Jeremias Maerki wrote: > > > > Hi Jeremias > > > > First things first: > > > > > Andreas, have you, by chance, started on this one already? I want to > > > avoid that two people are working on the same problem. > > > > Not yet. In my experiments with fo:inline-container, I did stumble > > upon a similar problem, but there the BreakingAlgorithm actually > > chokes because the elements are still unresolved at the time the > > LineLM for the ancestor block wants to compute the break- > > possibilities. (ClassCastException in BreakingAlgorithm.getElement() > > because a BreakElement, for example, is not a KnuthElement) > > > > I'm not even sure how to get around this for inline-containers, so if > > you have an idea to fix it for inlines, then go right ahead. > > > > > > > I've done some investigation here. It looks like fixing this leads > > > to a > > > somewhat bigger issue. But first things first: > > > > > > - The list-block (and tables and block-containers) don't get rendered > > > because their Position objects don't return true on generatesAreas(). > > > LineLayoutManager filters those in addAreas() because of that. > > > > Seems more correct to have this return true. > > > > > - the mustKeepTogether() method in ListBlockLM must be adjusted > > > like it > > > was already done in BlockLM.mustKeepTogether(). The other LMs will > > > need > > > to be checked, too. > > > > > > That would fix the issue at hand but if I use a block-container inside > > > an fo:inline I get an NPE because stackLimit in the LayoutContext is > > > null. I then found out that stackLimit is used in both IP-direction > > > and > > > BP-direction. I think this would need to be split in two fields so the > > > BP-direction value can be preserved so that block-level LMs which are > > > children of an inline-level LM can restore the stackLimit value > > > that was > > > used by the last block-level LM in the stack. > > > > Good idea. I also noticed that the same stackLimit is used for both > > directions. By itself, this did not seem problematic as long as page- > > and line-breaking do not interact. Splitting up into a stackLimitBP > > and a stackLimitIP (or whatever names you had in mind) seems better > > in the long run. > > > > > > Cheers > > > > Andreas > > > > > Jeremias Maerki >
Jeremias Maerki