diff options
author | Simon Pepping <spepping@apache.org> | 2010-12-17 10:57:18 +0000 |
---|---|---|
committer | Simon Pepping <spepping@apache.org> | 2010-12-17 10:57:18 +0000 |
commit | d4ec49dd8f220752be8a5ab0cf6d6f4e30a1e685 (patch) | |
tree | 0bb6477daa95f68db4aaf5bb81c7147ec167a7b1 | |
parent | 810ab878c482b9d643df01da5bff83240c22b3c7 (diff) | |
download | xmlgraphics-fop-d4ec49dd8f220752be8a5ab0cf6d6f4e30a1e685.tar.gz xmlgraphics-fop-d4ec49dd8f220752be8a5ab0cf6d6f4e30a1e685.zip |
Auxiliary positions do not have an index value; fixing this in InlineStackingLM.applyChanges, rewrapping positions; fixed bug 49870
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1050342 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java | 7 | ||||
-rw-r--r-- | test/layoutengine/standard-testcases/inline_hyphenation_border.xml | 49 |
2 files changed, 54 insertions, 2 deletions
diff --git a/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java b/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java index bcc03b956..8d8de3d22 100644 --- a/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java +++ b/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java @@ -339,8 +339,11 @@ public abstract class InlineStackingLayoutManager extends AbstractLayoutManager oldListIterator = oldList.listIterator(); while (oldListIterator.hasNext()) { oldElement = (KnuthElement) oldListIterator.next(); - oldElement.setPosition - (notifyPos(new NonLeafPosition(this, oldElement.getPosition()))); + NonLeafPosition newPos = new NonLeafPosition(this, oldElement.getPosition()); + if (newPos.generatesAreas()) { + notifyPos(newPos); + } + oldElement.setPosition(newPos); } return bSomethingChanged; } diff --git a/test/layoutengine/standard-testcases/inline_hyphenation_border.xml b/test/layoutengine/standard-testcases/inline_hyphenation_border.xml new file mode 100644 index 000000000..f3c133e6e --- /dev/null +++ b/test/layoutengine/standard-testcases/inline_hyphenation_border.xml @@ -0,0 +1,49 @@ +<?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 whether the border is properly rendered with + hyphenation. I effectively checks whether + InlineStackingLM.applyChanges rewraps the positions properly. + </p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master master-name="normal" page-width="210mm" page-height="297mm"> + <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:block hyphenate="true" language="en"> + <fo:inline border-color="#000000" border-style="solid" border-width="1pt">Test</fo:inline> + </fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <eval expected="(solid,#000000,1000)" xpath="//flow/block[1]/lineArea/inlineparent/@border-start"/> + <eval expected="(solid,#000000,1000)" xpath="//flow/block[1]/lineArea/inlineparent/@border-end"/> + <eval expected="(solid,#000000,1000)" xpath="//flow/block[1]/lineArea/inlineparent/@border-before"/> + <eval expected="(solid,#000000,1000)" xpath="//flow/block[1]/lineArea/inlineparent/@border-after"/> + </checks> +</testcase> |