diff options
-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> |