diff options
-rw-r--r-- | src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java | 6 | ||||
-rw-r--r-- | status.xml | 4 | ||||
-rw-r--r-- | test/layoutengine/standard-testcases/table-row_keep-with-next2.xml | 69 |
3 files changed, 79 insertions, 0 deletions
diff --git a/src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java b/src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java index 44a13af8b..c3e1a41da 100644 --- a/src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java +++ b/src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java @@ -235,6 +235,12 @@ public class TableContentLayoutManager implements PercentBaseContext { if (!isSeparateBorderModel()) { resolveNormalBeforeAfterBordersForRowGroup(rowGroup, iter); } + + //Reset keep-with-next when remaining inside the table. + //The context flag is only used to propagate keep-with-next to the outside. + //The clearing is ok here because createElementsForRowGroup already handles + //the keep when inside a table. + context.setFlags(LayoutContext.KEEP_WITH_NEXT_PENDING, false); //Element list creation createElementsForRowGroup(context, alignment, bodyType, diff --git a/status.xml b/status.xml index 4772cb821..105fe986d 100644 --- a/status.xml +++ b/status.xml @@ -29,6 +29,10 @@ <changes> <release version="FOP Trunk"> <action context="Code" dev="JM" type="fix"> + Fixed a problem with keep-with-next on table-rows. Once a keep-with-next was set + inside a table, the FO following the table would always be glued to the previous table. + </action> + <action context="Code" dev="JM" type="fix"> Fixed a problem with the auto-rotate-landscape setting in the PostScript renderer. It didn't generate the right setpagedevice command. </action> diff --git a/test/layoutengine/standard-testcases/table-row_keep-with-next2.xml b/test/layoutengine/standard-testcases/table-row_keep-with-next2.xml new file mode 100644 index 000000000..55086e577 --- /dev/null +++ b/test/layoutengine/standard-testcases/table-row_keep-with-next2.xml @@ -0,0 +1,69 @@ +<?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 keep-with-next behaviour on a table-row.
+ </p>
+ <p> + There used to be a bug where the keep-with-next signal wouldn't get cleared and
+ resulted in too little break possibilities. + </p>
+ </info>
+ <fo>
+ <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" widows="0" orphans="0">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="normal" page-width="5in" page-height="4.5 * 14.4pt">
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="normal">
+ <fo:flow flow-name="xsl-region-body">
+ <fo:table table-layout="fixed" width="100%" id="A">
+ <fo:table-column column-width="proportional-column-width(1)"/>
+ <fo:table-body>
+ <fo:table-row keep-with-next="always">
+ <fo:table-cell id="cellA1">
+ <fo:block>line1</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row keep-together="always">
+ <fo:table-cell id="cellA2">
+ <fo:block>line1</fo:block>
+ <fo:block>line2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ <fo:block>block</fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ </fo>
+ <checks>
+ <element-list category="breaker">
+ <box w="14400"/>
+ <penalty w="0" p="INF"/>
+ <box w="28800"/>
+ <penalty w="0" p="0"/>
+ <box w="14400"/>
+ <skip>3</skip>
+ </element-list>
+ </checks>
+</testcase>
|