Bladeren bron

Bugfix for keep-with-next inside tables:

Once a keep-with-next was set inside a table, the FO following the table would always be glued to the previous table.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@524571 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-0_94
Jeremias Maerki 17 jaren geleden
bovenliggende
commit
5ac9b91bfb

+ 6
- 0
src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java Bestand weergeven

@@ -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,

+ 4
- 0
status.xml Bestand weergeven

@@ -28,6 +28,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.

+ 69
- 0
test/layoutengine/standard-testcases/table-row_keep-with-next2.xml Bestand weergeven

@@ -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>

Laden…
Annuleren
Opslaan