svn commit: r1884753 - in /xmlgraphics/fop/trunk: fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java fop/test/layoutengine/disabled-testcases.xml
[email protected] Wed, 23 Dec 2020 13:37:05 -0000
| Newsgroups | gmane.text.xml.fop.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: cbowditch
Date: Wed Dec 23 13:37:05 2020
New Revision: 1884753
URL: http://svn.apache.org/viewvc?rev=1884753&view=rev
Log:
FOP-2960; fix + test
Modified:
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java
xmlgraphics/fop/trunk/fop/test/layoutengine/disabled-testcases.xml
Modified: xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java?rev=1884753&r1=1884752&r2=1884753&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java (original)
+++ xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java Wed Dec 23 13:37:05 2020
@@ -1018,12 +1018,20 @@ public class TextLayoutManager extends L
/** {@inheritDoc} */
public void hyphenate(Position pos, HyphContext hyphContext) {
- GlyphMapping mapping = getGlyphMapping(((LeafPosition) pos).getLeafPos() + changeOffset);
+ int glyphIndex = ((LeafPosition) pos).getLeafPos() + changeOffset;
+ GlyphMapping mapping = getGlyphMapping(glyphIndex);
int startIndex = mapping.startIndex;
int stopIndex;
boolean nothingChanged = true;
Font font = mapping.font;
+ // skip hyphenation if previously hyphenated using soft hyphen
+ if (mapping.isHyphenated || (glyphIndex > 0 && getGlyphMapping(glyphIndex - 1).isHyphenated)) {
+ stopIndex = mapping.endIndex;
+ hyphContext.updateOffset(stopIndex - startIndex);
+ startIndex = stopIndex;
+ }
+
while (startIndex < mapping.endIndex) {
MinOptMax newIPD = MinOptMax.ZERO;
boolean hyphenFollows;
@@ -1078,7 +1086,7 @@ public class TextLayoutManager extends L
new GlyphMapping(startIndex, stopIndex, 0,
letterSpaceCount, newIPD, hyphenFollows,
false, false, font, -1, null),
- ((LeafPosition) pos).getLeafPos() + changeOffset));
+ glyphIndex));
nothingChanged = false;
}
startIndex = stopIndex;
Modified: xmlgraphics/fop/trunk/fop/test/layoutengine/disabled-testcases.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop/test/layoutengine/disabled-testcases.xml?rev=1884753&r1=1884752&r2=1884753&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/fop/test/layoutengine/disabled-testcases.xml (original)
+++ xmlgraphics/fop/trunk/fop/test/layoutengine/disabled-testcases.xml Wed Dec 23 13:37:05 2020
@@ -87,13 +87,13 @@
<testcase>
<name>NPE for table inside an inline</name>
<file>inline_block_nested_3.xml</file>
- <description>Placing a table as a child of an fo:inline produces a
+ <description>Placing a table as a child of an fo:inline produces a
NullPointerException.</description>
</testcase>
<testcase>
<name>Keeps on inline-container are not implemented, yet.</name>
<file>inline-container_keeps.xml</file>
- <description>The keep-with-previous and keep-with-next properties have not been implemented on
+ <description>The keep-with-previous and keep-with-next properties have not been implemented on
inline-container yet. They will be treated as if they had the value "auto".</description>
</testcase>
<testcase>
@@ -135,14 +135,14 @@
<testcase>
<name>Page breaking doesn't deal with IPD changes</name>
<file>page-breaking_4.xml</file>
- <description>Page breaking currently doesn't support changing available IPD
+ <description>Page breaking currently doesn't support changing available IPD
between pages of a single page-sequence. Element list generation has to be reset to
redetermine line breaks in this case.</description>
</testcase>
<testcase>
<name>Overflow handing is incomplete</name>
<file>page-breaking_6.xml</file>
- <description>Line breaking is not 100% correct when there's too little space.
+ <description>Line breaking is not 100% correct when there's too little space.
Overflows are not detected and warned.</description>
</testcase>
<testcase>
@@ -186,7 +186,7 @@
<testcase>
<name>table-cell empty area with marker.xml</name>
<file>table-cell_empty_area_with_marker.xml</file>
- <description>A table-cell producing an empty area does currently not add any markers to a page.
+ <description>A table-cell producing an empty area does currently not add any markers to a page.
See TODO entry in AreaAdditionUtil.</description>
</testcase>
<testcase>
@@ -197,12 +197,6 @@
case should be revisited.</description>
</testcase>
<testcase>
- <name>Soft hyphen with normal hyphenation enabled</name>
- <file>block_shy_linebreaking_hyph.xml</file>
- <description>A soft hyphen should be a preferred as break compared to a
- normal hyphenation point but is not. Background info: see JIRA FOP-2466.</description>
- </testcase>
- <testcase>
<name>Page-keep not respected in multi-column layout</name>
<file>keep_within-page_multi-column_overflow.xml</file>
<description>The block should cause overflow in the