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





--- Comment #12 from Jeremias Maerki <[EMAIL PROTECTED]>  2008-03-18 01:15:58 
PST ---
(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.

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.


-- 
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