DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=41652>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=41652





------- Additional Comments From [EMAIL PROTECTED]  2007-02-18 13:18 -------
Further investigation and debugging confirm my suspicion, I think:

In both cases, with or without the intermediate space, the list returned by the 
TextLM consists of 4 
InlineKnuthSequences. Without the intermediate space, the second sequence 
contains only a 
KnuthPenalty corresponding to the preserved linefeed.

My initial idea of Inserting a space character would lead to undesirable 
outcomes, in for instance the 
following case:

<fo:block linefeed-treatment="preserve">xxxx
<fo:inline background-color="blue">

yyyy</fo:inline>
zzzz</fo:block>

in case there is a space on the 'empty' line, one would expect the blue 
background to appear for the 
width of one space character. In case it's just two consecutive linefeeds, the 
line should be completely 
empty, so no background should be visible...

I see a possible fix in adding the following to 
fop.layoutmgr.InlineKnuthSequence.endSequence():

        if (!isClosed) {
            if (isEmpty()) {
                add(new KnuthGlue(1, 0, 0, null, true));
            }
       ...

Or in English: if endSequence() is called on an empty sequence, add a dummy 
glue element.
The glue will be suppressed because of the following infinite penalty, so will 
leave no trace behind 
when background colors are used, like in the above example, but it will trigger 
the generation of the 
expected empty line (in AreaTree terms: an empty linearea, or one containing 
only an empty 
inlineparent of zero ipd)

I'm going to leave it open FTM, to allow others to comment in on the proposed 
change.

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

Reply via email to