]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Bugfix for whitespace handling that surfaced after my last fix for linefeed handling...
authorJeremias Maerki <jeremias@apache.org>
Thu, 3 Feb 2005 08:18:27 +0000 (08:18 +0000)
committerJeremias Maerki <jeremias@apache.org>
Thu, 3 Feb 2005 08:18:27 +0000 (08:18 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198368 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fo/FObj.java
src/java/org/apache/fop/fo/flow/Block.java

index 3281a4c276e6d8f25e0294e7a444012da4b9d9bc..87dc3bb1eb5d8f6065fe3abf1ea93bb7f661b658 100644 (file)
@@ -262,7 +262,16 @@ public abstract class FObj extends FONode implements Constants {
         return null;
     }
 
-   /**
+    /**
+     * Notifies a FObj that one of it's children is removed.
+     * This method is subclassed by Block to clear the firstInlineChild variable.
+     * @param node the node that was removed
+     */
+    protected void notifyChildRemoval(FONode node) {
+        //nop
+    }
+    
+    /**
      * Add the marker to this formatting object.
      * If this object can contain markers it checks that the marker
      * has a unique class-name for this object and that it is
@@ -282,6 +291,7 @@ public abstract class FObj extends FONode implements Constants {
                         return;
                     } else {
                         iter.remove();
+                        notifyChildRemoval(node);
                     }
                 } else {
                     getLogger().error("fo:marker must be an initial child: " + mcname);
index b99d49c4025c9b21336ff58e5fa15021944d0a86..234abb6cee758e70dfd48c3384f6d3866913fa86 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,9 +18,6 @@
 
 package org.apache.fop.fo.flow;
 
-// Java
-import java.util.List;
-
 import org.xml.sax.Locator;
 
 import org.apache.fop.apps.FOPException;
@@ -45,7 +42,6 @@ import org.apache.fop.fo.properties.CommonMarginBlock;
 import org.apache.fop.fo.properties.CommonRelativePosition;
 import org.apache.fop.fo.properties.KeepProperty;
 import org.apache.fop.fo.properties.SpaceProperty;
-import org.apache.fop.layoutmgr.BlockLayoutManager;
 import org.apache.fop.util.CharUtilities;
 
 /*
@@ -323,6 +319,15 @@ public class Block extends FObjMixed {
         }
         super.addChildNode(child);
     }
+    
+    /**
+     * @see org.apache.fop.fo.FObj#notifyChildRemoval(org.apache.fop.fo.FONode)
+     */
+    protected void notifyChildRemoval(FONode node) {
+        if (node != null && node == firstInlineChild) {
+            firstInlineChild = null;
+        }
+    }
 
     private void handleWhiteSpace() {
         //getLogger().debug("fo:block: handleWhiteSpace");