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

Andreas L. Delmelle <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #13 from Andreas L. Delmelle <[email protected]> 2010-11-25 
16:31:26 EST ---
Both issues fixed in r1039188:
- combination of linefeed-preserve and hyphenation failed for the reasons
described in earlier comments. After having inverted the main loop in
LineLM.createLineBreaks() (see r956271), the fix was to modify
TextLM.applyChanges() and TextLM.getChangedKnuthElements() to account for the
fact that they can be called multiple times for the same instance.
Additionally, needed to make sure LineLM.hyphenationPerformed is only set if
the last paragraph has been hyphenated. Otherwise, hyphenation would be
bypassed for all paragraphs following the first preserved linefeed in a block.
After modification, hyphenation is only bypassed in case of a re-entry due to
changing page-ipd.
- combination of white-space-treatment="preserve" and hyphenation failed due to
an oversight that has probably been present for a while. See
LineLM.addInlineArea(), around line 1515: lastLM was only set in case
white-space-treatment is not "preserve". If white-space was preserved, this
caused the call to LayoutContext.setFlags() some 70-75 lines further down to
set LAST_AREA to false (childLM == lastLM), which in turn caused TextLM to
ignore the hyphenation character when building the area.
Fix was to make sure that lastLM always points to the LM of the last
KnuthElement in the sequence to be processed.

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