https://issues.apache.org/bugzilla/show_bug.cgi?id=44412





--- Comment #14 from Vincent Hennebert <[EMAIL PROTECTED]>  2008-03-18 03:20:59 
PST ---
(In reply to comment #12)
> (In reply to comment #8)
> > Plus it doesn't work with tables. See the following testcases where the 
> > failing
> > tests are currently commented out:
> > table-cell_break-before_first-row.xml
> > table-cell_break-after_last-row.xml
> > table-row_break-before_first-row.xml
> > table-row_break-after_last-row.xml
> > table_break-before_break-after.xml
> > 
> > By looking at the changes made in BlockStackingLayoutManager I have no real
> > clue of what needs to be done in TableLayoutManager.
> 
> The patch I've just attached should show you how to port the child 
> break-before
> behaviour from BlockStackingLM to TableCellLM. But that's not the whole thing,
> yet (I've only looked at the first case in
> table-cell_break-before_first-row.xml for now). This creates an empty box that
> will cause the generation of a 0-bpd area before the break. For
> BlockStackingLM, this is enough, but for tables the element list combination 
> is
> added. This patch alone behaves correctly but shows a short-coming in the
> handling of our rule that every cell needs to contribute at least one part
> before the first break possibility in a table-row. Currently, the algorithm
> doesn't detect that the first cell is contributing nothing (a 0-length box is
> nothing). So the second cell shouldn't contribute it's first part, yet. I hope
> that gets you going.

Thanks for the patch. I understand the purpose of the empty box now. However I
won't apply it since like you noticed it doesn't fit well with the merging
algorithm, plus it introduces code duplication I'm not happy with (a similar
change probably needs to be done also for lists –once breaks in lists are
working). Leaving the bug open for now since I don't currently have time to
dive further into it.


> Ideally, of course, the table LMs would be improved so the
> getNextKnuthElements() can be called multiple times and can break early when a
> forced break is encountered (like other LMs do). I guess this will be required
> anyway once the inline/block-level layout interaction is addressed. I don't
> know if Simon has already dared looking into this not quite trivial task.

Not sure about that. I actually removed that in TableLM and TableCellLM. I'm
convinced the getNextKnuthElements method can be called only once and forced
breaks handled another way. But indeed things might become clearer once working
on the inline/block-level interaction.

Vincent


-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Reply via email to