diff options
Diffstat (limited to 'fop-core/src')
-rw-r--r-- | fop-core/src/main/java/org/apache/fop/fo/flow/Footnote.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/fop-core/src/main/java/org/apache/fop/fo/flow/Footnote.java b/fop-core/src/main/java/org/apache/fop/fo/flow/Footnote.java index 521e8b081..aec57cf86 100644 --- a/fop-core/src/main/java/org/apache/fop/fo/flow/Footnote.java +++ b/fop-core/src/main/java/org/apache/fop/fo/flow/Footnote.java @@ -19,9 +19,13 @@ package org.apache.fop.fo.flow; +import java.util.Iterator; +import java.util.Stack; + import org.xml.sax.Locator; import org.apache.fop.apps.FOPException; +import org.apache.fop.complexscripts.bidi.DelimitedTextRange; import org.apache.fop.fo.FONode; import org.apache.fop.fo.FObj; import org.apache.fop.fo.PropertyList; @@ -148,5 +152,24 @@ public class Footnote extends FObj implements CommonAccessibilityHolder { public int getNameId() { return FO_FOOTNOTE; } + + @Override + protected Stack<DelimitedTextRange> collectDelimitedTextRanges(Stack<DelimitedTextRange> ranges, + DelimitedTextRange currentRange) { + FootnoteBody body = getFootnoteBody(); + if (body != null) { + ranges = body.collectDelimitedTextRanges(ranges); + } + + Inline inline = getFootnoteCitation(); + if (inline != null) { + ranges = inline.collectDelimitedTextRanges(ranges); + } + + for (Iterator it = getChildNodes(); (it != null) && it.hasNext();) { + ranges = ((FONode) it.next()).collectDelimitedTextRanges(ranges); + } + return ranges; + } } |