add InlineContainer to DepthFirstTraversal; propagate layout to children

Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/DepthFirstTraversal.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/DepthFirstTraversal.java
index ab72fce..1b0e5ca 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/DepthFirstTraversal.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/DepthFirstTraversal.java
@@ -48,6 +48,11 @@
 		return traverseChildren(box);
 	}
 
+	@Override
+	public T visit(final InlineContainer box) {
+		return traverseChildren(box);
+	}
+
 	protected final <C extends IBox> T traverseChildren(final IParentBox<C> box) {
 		for (final C child : box.getChildren()) {
 			final T childResult = child.accept(this);
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/InlineContainer.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/InlineContainer.java
index fd57fae..01b0bf9 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/InlineContainer.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/InlineContainer.java
@@ -102,10 +102,17 @@
 
 	@Override
 	public void layout(final Graphics graphics) {
+		layoutChildren(graphics);
 		calculateBoundsAndBaseline();
 		arrangeChildrenOnBaseline();
 	}
 
+	private void layoutChildren(final Graphics graphics) {
+		for (final IInlineBox child : children) {
+			child.layout(graphics);
+		}
+	}
+
 	private void calculateBoundsAndBaseline() {
 		width = 0;
 		height = 0;