]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Bugzilla 42703: Fixed incorrect white-space removal in retrieved markers.
authorAndreas L. Delmelle <adelmelle@apache.org>
Sun, 16 Sep 2007 10:45:05 +0000 (10:45 +0000)
committerAndreas L. Delmelle <adelmelle@apache.org>
Sun, 16 Sep 2007 10:45:05 +0000 (10:45 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@576072 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fo/FOText.java
src/java/org/apache/fop/fo/flow/RetrieveMarker.java
status.xml
test/layoutengine/standard-testcases/marker_white-space-treatment_bug42703.xml [new file with mode: 0644]

index 527cdbfc4fca496d6e0539430d1097e3fb7a19a3..8d9111b02ed5b70a7247e074ef6def138a04f510 100644 (file)
@@ -158,6 +158,9 @@ public class FOText extends FONode {
                 System.arraycopy(ca, 0, ft.ca, 0, ca.length);
             }
         }
+        prevFOTextThisBlock = null;
+        nextFOTextThisBlock = null;
+        ancestorBlock = null;
         return ft;
     }
 
index 316d5411abdd62f15c1391998c06ac9fbedc6c19..3a7328b6b19c9ed6be7f4e2287439cff77058162 100644 (file)
@@ -125,6 +125,7 @@ public class RetrieveMarker extends FObjMixed {
                         getLocator(),
                         pList,
                         newPropertyList);
+                addChildTo(newChild, (FObj) newParent);
                 if (newChild.getNameId() == FO_TABLE) {
                     Table t = (Table) child;
                     cloneSubtree(t.getColumns().listIterator(),
@@ -139,8 +140,8 @@ public class RetrieveMarker extends FObjMixed {
             } else if (child instanceof FOText) {
                 FOText ft = (FOText) newChild;
                 ft.bind(parentPropertyList);
+                addChildTo(newChild, (FObj) newParent);
             }
-            addChildTo(newChild, (FObj) newParent);
             if (newChild instanceof FObjMixed) {
                 handleWhiteSpaceFor((FObjMixed) newChild);
             }
index 3d67b242e231b1c027eab08eebac165be62e4e43..2b7a1f11bb5518f0ed81405211d1d09f492f8b72 100644 (file)
@@ -28,6 +28,9 @@
 
   <changes>
     <release version="FOP Trunk">
+      <action context="Code" dev="AD" type="fix" fixes-bug="42703">
+        Fixed erroneous white-space removal in retrieved markers.
+      </action>
       <action context="Code" dev="AD" type="fix" fixes-bug="43274" due-to="ckohrn.at.tng.de">
         Fixed erroneous usage of inherited color-values in SVG.
       </action>
diff --git a/test/layoutengine/standard-testcases/marker_white-space-treatment_bug42703.xml b/test/layoutengine/standard-testcases/marker_white-space-treatment_bug42703.xml
new file mode 100644 (file)
index 0000000..0eb80f9
--- /dev/null
@@ -0,0 +1,68 @@
+<?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>
+      Test accompanying bugfix for Bugzilla 42703
+    </p>
+  </info>
+  <fo>
+    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" >
+       <fo:layout-master-set>
+          <fo:simple-page-master master-name="all-pages">
+             <fo:region-body region-name="xsl-region-body" margin-top="10cm"/>
+             <fo:region-before region-name="xsl-region-before" extent="29cm" display-align="before" />
+             <fo:region-after region-name="xsl-region-after" extent="10cm" display-align="before" />
+          </fo:simple-page-master>
+       </fo:layout-master-set>
+       <fo:page-sequence master-reference="all-pages">
+          <fo:static-content flow-name="xsl-region-before">
+          <fo:block color="blue" font-size="25pt">
+            <fo:block>marker1 content:
+              <fo:inline color="green"><fo:retrieve-marker 
+              retrieve-class-name="marker1" 
+              retrieve-boundary="page"                                 
+              /></fo:inline>
+            </fo:block>
+            <fo:block>marker1 content:
+              <fo:inline color="green"><fo:retrieve-marker 
+              retrieve-class-name="marker1" 
+              retrieve-boundary="page"                                 
+              /></fo:inline>
+            </fo:block>
+          </fo:block>
+          </fo:static-content>
+          <fo:flow flow-name="xsl-region-body">
+             <fo:block font-size="20pt">
+          <fo:block margin-top="2cm">
+            <fo:marker marker-class-name="marker1">
+              <fo:block>Block<fo:inline> with inline element <fo:external-graphic src="../../resources/images/img.svg" content-type="content-type:xml/svg" alignment-baseline="text-after-edge" height="1em" content-height="scale-to-fit"/> and a graphic </fo:inline>.</fo:block>
+            </fo:marker>
+            text with the marker
+          </fo:block>
+         </fo:block>
+          </fo:flow>
+       </fo:page-sequence>
+    </fo:root>
+  </fo>
+  <checks>
+    <eval expected="4" xpath="count((//regionBefore//inlineparent)[1]/text[1]/space)" />
+    <eval expected="4" xpath="count((//regionBefore//inlineparent)[1]/text[2]/space)" />
+  </checks>
+</testcase>