aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java6
-rw-r--r--status.xml4
-rw-r--r--test/layoutengine/standard-testcases/table-row_keep-with-next2.xml69
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>