You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2006/01/04 20:30:31 UTC
svn commit: r365971 - in /xmlgraphics/fop/trunk:
src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java
test/layoutengine/standard-testcases/block_space-before_space-after_bug38102.xml
Author: jeremias
Date: Wed Jan 4 11:30:24 2006
New Revision: 365971
URL: http://svn.apache.org/viewcvs?rev=365971&view=rev
Log:
Bugzilla #38102:
Bugfix: Space was not adjusted if the space was on a nested block inside an auto-height block-container. This could lead to content overflowing the bottom of a page.
Note: Tables and lists currently don't offer space adjustments due to the current limits of the element list combination process. Once the stretch/shrink components are handled during element list combination, this will have to be rechecked.
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_space-before_space-after_bug38102.xml
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java?rev=365971&r1=365970&r2=365971&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java Wed Jan 4 11:30:24 2006
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2005 The Apache Software Foundation.
+ * Copyright 1999-2006 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.
@@ -675,6 +675,7 @@
LayoutManager childLM = null;
LayoutManager lastLM = null;
LayoutContext lc = new LayoutContext(0);
+ lc.setSpaceAdjust(layoutContext.getSpaceAdjust());
// set space after in the LayoutContext for children
if (layoutContext.getSpaceAfter() > 0) {
lc.setSpaceAfter(layoutContext.getSpaceAfter());
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_space-before_space-after_bug38102.xml
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_space-before_space-after_bug38102.xml?rev=365971&r1=365970&r2=365971&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_space-before_space-after_bug38102.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_space-before_space-after_bug38102.xml Wed Jan 4 11:30:24 2006
@@ -30,7 +30,7 @@
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
- <fo:page-sequence master-reference="normal">
+ <fo:page-sequence master-reference="normal" id="block">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:block>line1</fo:block>
@@ -38,14 +38,78 @@
<fo:block space-before.optimum="16pt">line3</fo:block>
<fo:block>line4</fo:block>
<fo:block>line5</fo:block>
- <fo:block>line6</fo:block>
+ <fo:block>line6</fo:block>
</fo:block>
</fo:flow>
</fo:page-sequence>
+ <fo:page-sequence master-reference="normal" id="b-c-1">
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block-container>
+ <fo:block>line1</fo:block>
+ <fo:block space-before="16pt">line2</fo:block>
+ <fo:block space-before.optimum="16pt">line3</fo:block>
+ <fo:block>line4</fo:block>
+ <fo:block>line5</fo:block>
+ <fo:block>line6</fo:block>
+ </fo:block-container>
+ </fo:flow>
+ </fo:page-sequence>
+ <fo:page-sequence master-reference="normal" id="b-c-2">
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block-container height="1.5in">
+ <fo:block>line1</fo:block>
+ <fo:block space-before="16pt">line2</fo:block>
+ <fo:block space-before.optimum="16pt">line3</fo:block>
+ <fo:block>line4</fo:block>
+ <fo:block>line5</fo:block>
+ <fo:block>line6</fo:block>
+ </fo:block-container>
+ </fo:flow>
+ </fo:page-sequence>
+ <!-- Spaces inside tables don't get adjusted. The element list combination process is not that advanced, yet.
+ <fo:page-sequence master-reference="normal" id="table">
+ <fo:flow flow-name="xsl-region-body">
+ <fo:table table-layout="fixed" width="100%">
+ <fo:table-column column-width="100%"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell>
+ <fo:block>line1</fo:block>
+ <fo:block space-before="16pt">line2</fo:block>
+ <fo:block space-before.optimum="16pt">line3</fo:block>
+ <fo:block>line4</fo:block>
+ <fo:block>line5</fo:block>
+ <fo:block>line6</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </fo:flow>
+ </fo:page-sequence-->
+ <!-- The same applies to lists, too.
+ <fo:page-sequence master-reference="normal" id="list">
+ <fo:flow flow-name="xsl-region-body">
+ <fo:list-block>
+ <fo:list-item>
+ <fo:list-item-label>
+ <fo:block/>
+ </fo:list-item-label>
+ <fo:list-item-body>
+ <fo:block>line1</fo:block>
+ <fo:block space-before="16pt">line2</fo:block>
+ <fo:block space-before.optimum="16pt">line3</fo:block>
+ <fo:block>line4</fo:block>
+ <fo:block>line5</fo:block>
+ <fo:block>line6</fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ </fo:list-block>
+ </fo:flow>
+ </fo:page-sequence-->
</fo:root>
</fo>
<checks>
- <element-list category="breaker">
+ <element-list category="breaker" id="block">
<box w="14400"/>
<penalty w="0" p="0"/>
@@ -67,10 +131,26 @@
<skip>3</skip>
</element-list>
- <eval expected="1" xpath="count(//pageViewport)"/>
- <eval expected="16000" xpath="//flow/block[1]/block[2]/@space-before"/>
+
+ <!-- page-sequence 1 with fo:block -->
+ <eval expected="1" xpath="count(//pageSequence[1]//pageViewport)"/>
+ <eval expected="16000" xpath="//pageSequence[1]//flow/block[1]/block[2]/@space-before"/>
+ <!-- The breaker needs to shrink the optimal 1600mpt to 5600mpt to fit everything into the one page -->
+ <eval expected="5600" xpath="//pageSequence[1]//flow/block[1]/block[3]/@space-before"/>
+ <true xpath="//pageSequence[1]//flow/@bpd = //pageSequence[1]//regionBody/@bpd"/>
+
+ <!-- page-sequence 2 with fo:block-container (auto-height)-->
+ <eval expected="1" xpath="count(//pageSequence[2]//pageViewport)"/>
+ <eval expected="16000" xpath="//pageSequence[2]//flow/block[1]/block[1]/block[2]/@space-before"/>
+ <!-- The breaker needs to shrink the optimal 1600mpt to 5600mpt to fit everything into the one page -->
+ <eval expected="5600" xpath="//pageSequence[2]//flow/block[1]/block[1]/block[3]/@space-before"/>
+ <true xpath="//pageSequence[2]//flow/@bpd = //pageSequence[2]//regionBody/@bpd"/>
+
+ <!-- page-sequence 3 with fo:block-container (fixed height)-->
+ <eval expected="1" xpath="count(//pageSequence[3]//pageViewport)"/>
+ <eval expected="16000" xpath="//pageSequence[3]//flow/block[1]/block[1]/block[2]/@space-before"/>
<!-- The breaker needs to shrink the optimal 1600mpt to 5600mpt to fit everything into the one page -->
- <eval expected="5600" xpath="//flow/block[1]/block[3]/@space-before"/>
- <true xpath="//flow/@bpd = //regionBody/@bpd"/>
+ <eval expected="5600" xpath="//pageSequence[3]//flow/block[1]/block[1]/block[3]/@space-before"/>
+ <true xpath="//pageSequence[3]//flow/@bpd = //pageSequence[3]//regionBody/@bpd"/>
</checks>
</testcase>
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org