Browse Source

FOP-2707: fix wrong bidi level, when creating new spans

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1796102 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-2_3
Matthias Reischenbacher 7 years ago
parent
commit
416bcd114e

+ 5
- 0
fop-core/src/main/java/org/apache/fop/area/MainReference.java View File

@@ -37,6 +37,7 @@ public class MainReference extends Area {
private BodyRegion parent;
private List<Span> spanAreas = new java.util.ArrayList<Span>();
private boolean isEmpty = true;
private WritingModeTraitsGetter wmtg;

/**
* Constructor
@@ -62,6 +63,9 @@ public class MainReference extends Area {
Span newSpan = new Span(((spanAll) ? 1 : getColumnCount()),
getColumnGap(), parent.getContentIPD());
spanAreas.add(newSpan);
if (wmtg != null) {
newSpan.setWritingModeTraits(wmtg);
}
return getCurrentSpan();
}

@@ -127,6 +131,7 @@ public class MainReference extends Area {
* @param wmtg a WM traits getter
*/
public void setWritingModeTraits(WritingModeTraitsGetter wmtg) {
this.wmtg = wmtg;
for (Span s : getSpans()) {
s.setWritingModeTraits(wmtg);
}

+ 47
- 0
fop/test/layoutengine/standard-testcases/region-body_column-count_span_writing-mode_rl.xml View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- $Id$ -->
<testcase>
<info>
<p>
This test checks multi-column documents with right-to-left writing mode. Normal multi-column document breaking over more than one page.
</p>
</info>
<fo>
<fo:root
xmlns:fo="http://www.w3.org/1999/XSL/Format" writing-mode="rl-tb">
<fo:layout-master-set>
<fo:simple-page-master margin="20mm" master-name="odd" page-height="148mm" page-width="210mm">
<fo:region-body column-count="3"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="odd" writing-mode="rl-tb">
<fo:flow flow-name="xsl-region-body">
<fo:block span="all">Spanned Block</fo:block>
<fo:block>Col1</fo:block>
<fo:block break-before="column">Col2</fo:block>
<fo:block break-before="column">Col3</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</fo>
<checks>
<eval expected="1" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[1]/@level"/>
<eval expected="1" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[2]/@level"/>
</checks>
</testcase>

Loading…
Cancel
Save