You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by bu...@apache.org on 2011/05/24 22:45:46 UTC

DO NOT REPLY [Bug 44328] [PATCH] orphans/widows not respected in some cases

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

Andreas L. Delmelle <ad...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #26851|0                           |1
        is obsolete|                            |

--- Comment #16 from Andreas L. Delmelle <ad...@apache.org> 2011-05-24 20:45:46 UTC ---
Created attachment 27055
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=27055
updated patch, containing fix for combinations of widows/orphans and keep-*


Further testing revealed odd behavior in case the first child block generates
less lines of content than the orphans constraint *and* has a keep-with-next
set. The pending keeps were not properly cleared, as the call to super() in
BlockLM.addInBetweenBreak() was skipped.
Incidentally, this made me aware that the previous patch was also flawed in
that it only (potentially) skips this for the second childLM. That would assume
the total number of lines generated by the first two childLMs is enough to
satisfy the constraint --which obviously works pretty well if you check only
initial values... ;-) Test case TBD, but should already be accounted for in the
patch.

I was slightly concerned about moving to KnuthBlockBox in all situations, as it
reserves space for a few extra references per instance. To mitigate that
somewhat, the footnote-related information was put in a static class, so that
those two references at least are compounded. No footnotes means only one
unused reference instead of two. None would be even better, but that requires a
bit of clever restructuring in the KnuthBox hierarchy (insert a LineBox in
between KnuthBox and KnuthBlockBox?). On my mind, but I have not quite figured
it all out yet.

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