Author: ssteiner
Date: Tue Jul 12 13:08:29 2022
New Revision: 1902677

URL: http://svn.apache.org/viewvc?rev=1902677&view=rev
Log:
FOP-3081: Fix change ipd for linefeed-treatment=preserve

Added:
    
xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/flow_changing-ipd_6.xml
   (with props)
Modified:
    
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java

Modified: 
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java?rev=1902677&r1=1902676&r2=1902677&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java
 (original)
+++ 
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java
 Tue Jul 12 13:08:29 2022
@@ -653,6 +653,12 @@ public class LineLayoutManager extends I
             LeafPosition restartPosition) {
         log.trace("Restarting line breaking from index " + 
restartPosition.getIndex());
         int parIndex = restartPosition.getLeafPos();
+
+        for (int i = 0; i < parIndex; i++) {
+            knuthParagraphs.remove(0);
+        }
+        parIndex = 0;
+
         KnuthSequence paragraph = knuthParagraphs.get(parIndex);
         if (paragraph instanceof Paragraph) {
             ((Paragraph) paragraph).ignoreAtStart = 0;

Added: 
xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/flow_changing-ipd_6.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/flow_changing-ipd_6.xml?rev=1902677&view=auto
==============================================================================
--- 
xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/flow_changing-ipd_6.xml
 (added)
+++ 
xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/flow_changing-ipd_6.xml
 Tue Jul 12 13:08:29 2022
@@ -0,0 +1,74 @@
+<?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 that a list can be relaid out when a change in ipd 
happens across pages.
+    </p>
+  </info>
+  <fo>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format";>
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="PageFront" page-width="8.5in" 
page-height="11in" margin-bottom="4mm" margin-right="6mm" margin-top="5mm" 
margin-left="7mm">
+      <fo:region-body margin-bottom="24.87mm" margin-right="55.03mm" 
margin-top="0mm" margin-left="0mm" region-name="letterPageBody"/>      
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="AlternativePage" page-width="8.5in" 
page-height="11in" margin-bottom="4mm" margin-right="6mm" margin-top="5mm" 
margin-left="7mm">
+      <fo:region-body margin-right="0mm" margin-bottom="24.87mm" 
margin-top="24.87mm" margin-left="0mm" region-name="letterPageBody"/>      
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="BackPage" page-width="11in" 
page-height="8.5in" margin-bottom="4mm" margin-right="6mm" margin-top="5mm" 
margin-left="7mm">
+      <fo:region-body margin-bottom="24.87mm" margin-right="0mm" 
margin-top="0mm" margin-left="0mm" region-name="letterPageBody" />
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="LetterPages">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference page-position="first" 
master-reference="PageFront"/>
+        <fo:conditional-page-master-reference page-position="rest" 
master-reference="AlternativePage"/>
+        <fo:conditional-page-master-reference page-position="last" 
master-reference="BackPage"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence initial-page-number="auto" force-page-count="auto" 
master-reference="LetterPages">   
+    <fo:flow flow-name="letterPageBody">     
+       <fo:block linefeed-treatment="preserve" 
background-color="orange">1abitasse platea dictumst quisque sagittis. Orci 
sagittis eu volutpat odio facilisis mauris sit amet massa. Sed turpis tincidunt 
id aliquet risus feugiat in ante. Scelerisque eleifend donec pretium vulputate 
sapien nec sagittis aliquam malesuada. Sed blandit libero volutpat sed. 
Pulvinar etiam non quam lacus suspendisse faucibus. Leo a diam sollicitudin 
tempor id eu nisl nunc mi. Sapien eget mi proin sed libero enim. Amet nisl 
purus in mollis nunc. Ut placerat orci nulla pellentesque dignissim enim. Ipsum 
suspendisse ultrices gravida dictum fusce ut placerat orci. Eget felis eget 
nunc lobortis mattis aliquam.
+2orta lorem mollis aliquam ut porttitor. In mollis nunc sed id semper risus in 
hendrerit. Nibh ipsum consequat nisl vel. Nibh ipsum consequat nisl vel pretium 
lectus quam id. Mi eget mauris pharetra et. Lacus sed viverra tellus in hac. 
Odio euismod lacinia at quis risus sed vulputate. Sociis natoque penatibus et 
magnis dis parturient. Nunc faucibus a pellentesque sit amet porttitor eget. 
Cras ornare arcu dui vivamus arcu felis bibendum ut. Sit amet massa vitae 
tortor condimentum lacinia. Et ligula ullamcorper malesuada proin libero nunc 
consequat interdum varius.
+3uis at consectetur lorem donec massa sapien faucibus et molestie. Id 
venenatis a condimentum vitae sapien pellentesque habitant morbi. Sed cras 
ornare arcu dui vivamus arcu felis bibendum ut. Viverra aliquet eget sit amet. 
Varius vel pharetra vel turpis nunc eget lorem dolor sed. Enim nec dui nunc 
mattis enim ut. Elit ullamcorper dignissim cras tincidunt lobortis feugiat 
vivamus at. Sit amet mauris commodo quis imperdiet. Est sit amet facilisis 
magna etiam tempor orci. Porttitor leo a diam sollicitudin tempor id eu nisl 
nunc. Netus et malesuada fames ac. Diam quam nulla porttitor massa id neque 
aliquam vestibulum morbi.
+4lacerat orci nulla pellentesque dignissim enim. Felis eget velit aliquet 
sagittis id consectetur purus ut faucibus. Turpis egestas sed tempus urna et 
pharetra pharetra. Pellentesque massa placerat duis ultricies. Accumsan sit 
amet nulla facilisi morbi tempus iaculis. Ultrices vitae auctor eu augue ut 
lectus arcu bibendum at. Nisi lacus sed viverra tellus in hac habitasse platea. 
Viverra orci sagittis eu volutpat odio. Lobortis elementum nibh tellus molestie 
nunc non blandit. Mauris augue neque gravida in fermentum et sollicitudin ac. 
Arcu cursus vitae congue mauris. Quam pellentesque nec nam aliquam sem et 
tortor.
+5ellus integer feugiat scelerisque varius morbi enim nunc faucibus. Eu feugiat 
pretium nibh ipsum consequat nisl. Aenean pharetra magna ac placerat vestibulum 
lectus mauris ultrices eros. Integer enim neque volutpat ac tincidunt vitae. 
Pellentesque elit eget gravida cum. Elementum pulvinar etiam non quam lacus 
suspendisse faucibus interdum posuere. Eget egestas purus viverra accumsan in 
nisl nisi scelerisque. Cum sociis natoque penatibus et. Pulvinar sapien et 
ligula ullamcorper malesuada proin libero nunc. Morbi quis commodo odio aenean 
sed adipiscing diam donec. Vitae congue eu consequat ac felis donec. Ac tortor 
vitae purus faucibus.
+6ellus mauris a diam maecenas sed enim. Vitae semper quis lectus nulla. Nunc 
consequat interdum varius sit amet. Id faucibus nisl tincidunt eget nullam. 
Scelerisque mauris pellentesque pulvinar pellentesque. Sed adipiscing diam 
donec adipiscing tristique risus nec feugiat in. Dui vivamus arcu felis 
bibendum ut tristique. Vel turpis nunc eget lorem dolor sed viverra. Odio eu 
feugiat pretium nibh ipsum consequat nisl vel pretium. Turpis tincidunt id 
aliquet risus. Libero nunc consequat interdum varius sit amet mattis vulputate 
enim. Pellentesque elit eget gravida cum sociis natoque.
+7aculis eu non diam phasellus vestibulum lorem sed risus ultricies. Etiam 
tempor orci eu lobortis elementum nibh. Faucibus et molestie ac feugiat. 
Elementum eu facilisis sed odio morbi quis commodo odio. Scelerisque eleifend 
donec pretium vulputate sapien. Sed turpis tincidunt id aliquet risus. Massa 
eget egestas purus viverra accumsan. Turpis massa sed elementum tempus egestas 
sed. Sem nulla pharetra diam sit amet nisl suscipit adipiscing. Proin sed 
libero enim sed faucibus turpis in eu. Morbi quis commodo odio aenean. Proin 
sagittis nisl rhoncus mattis rhoncus.
+8u non diam phasellus vestibulum lorem sed risus ultricies tristique. Lectus 
mauris ultrices eros in cursus. Odio aenean sed adipiscing diam donec 
adipiscing tristique risus nec. Commodo quis imperdiet massa tincidunt nunc. 
Interdum varius sit amet mattis vulputate enim nulla aliquet porttitor. Semper 
viverra nam libero justo. Duis at tellus at urna. Volutpat maecenas volutpat 
blandit aliquam etiam erat. Feugiat in ante metus dictum at tempor commodo 
ullamcorper a. Ultricies leo integer malesuada nunc vel risus commodo. 
Adipiscing vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. Sem 
fringilla ut morbi tincidunt augue interdum velit.
+9attis aliquam faucibus purus in massa tempor. Congue mauris rhoncus aenean 
vel. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Ut 
ornare lectus sit amet est placerat in egestas erat. Pellentesque habitant 
morbi tristique senectus et netus et. Est velit egestas dui id ornare arcu odio 
ut sem. Orci nulla pellentesque dignissim enim. Sed vulputate odio ut enim 
blandit volutpat. Accumsan tortor posuere ac ut. Malesuada proin libero nunc 
consequat interdum. In pellentesque massa placerat duis ultricies lacus. Nibh 
tortor id aliquet lectus proin nibh nisl condimentum.
+10ismod nisi porta lorem mollis aliquam ut porttitor leo. Vel pharetra vel 
turpis nunc. Commodo viverra maecenas accumsan lacus. Quisque sagittis purus 
sit amet volutpat. Suspendisse interdum consectetur libero id faucibus nisl. 
Viverra nam libero justo laoreet sit amet. Etiam tempor orci eu lobortis. 
Pharetra pharetra massa massa ultricies mi quis hendrerit. Vitae congue eu 
consequat ac felis donec. Libero justo laoreet sit amet cursus sit amet. 
Phasellus faucibus scelerisque eleifend donec pretium. Habitant morbi tristique 
senectus et.
+11tae nunc sed velit dignissim sodales ut eu sem integer. Justo laoreet sit 
amet cursus sit. Id volutpat lacus laoreet non curabitur gravida arcu ac. 
Ultrices in iaculis nunc sed augue lacus viverra. Maecenas volutpat blandit 
aliquam etiam erat. Quisque non tellus orci ac auctor augue. Massa sapien 
faucibus et molestie ac feugiat sed lectus. Quis auctor elit sed vulputate mi. 
Odio morbi quis commodo odio aenean. Aliquam sem fringilla ut morbi tincidunt 
augue interdum. Turpis egestas pretium aenean pharetra magna ac. Mauris nunc 
congue nisi vitae suscipit tellus mauris a.
+12am vel quam elementum pulvinar etiam. Scelerisque mauris pellentesque 
pulvinar pellentesque. Adipiscing tristique risus nec feugiat in fermentum 
posuere urna. Erat pellentesque adipiscing commodo elit. Bibendum at varius vel 
pharetra vel turpis nunc eget lorem. Ante metus dictum at tempor commodo 
ullamcorper. Arcu ac tortor dignissim convallis aenean et tortor. A scelerisque 
purus semper eget duis at. At tempor commodo ullamcorper a lacus vestibulum 
sed. Vitae elementum curabitur vitae nunc sed velit. Venenatis tellus in metus 
vulputate eu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus.
+13spendisse ultrices gravida dictum fusce ut placerat orci nulla. Id volutpat 
lacus laoreet non. Bibendum arcu vitae elementum curabitur vitae nunc sed velit 
dignissim. Leo a diam sollicitudin tempor id eu. Vel orci porta non pulvinar 
neque laoreet. Quis imperdiet massa tincidunt nunc. Porttitor eget dolor morbi 
non arcu risus quis varius. Ac odio tempor orci dapibus ultrices. Enim diam 
vulputate ut pharetra. Ullamcorper eget nulla facilisi etiam dignissim diam 
quis enim lobortis. Pulvinar elementum integer enim neque volutpat ac tincidunt 
vitae. Quis vel eros donec ac odio tempor orci dapibus.
+14as semper auctor neque vitae tempus quam pellentesque nec. Sagittis eu 
volutpat odio facilisis mauris sit amet. Blandit turpis cursus in hac habitasse 
platea. Quis auctor elit sed vulputate mi sit amet mauris commodo. Laoreet sit 
amet cursus sit amet dictum sit amet. Mattis molestie a iaculis at erat 
pellentesque adipiscing commodo. Cras pulvinar mattis nunc sed blandit libero 
volutpat sed. Volutpat consequat mauris nunc congue. Volutpat diam ut venenatis 
tellus in metus vulputate eu. Massa sapien faucibus et molestie ac feugiat sed. 
Pretium lectus quam id leo in vitae. Pretium vulputate sapien nec sagittis 
aliquam malesuada bibendum arcu.
+15rta nibh venenatis cras sed felis eget velit. Nisl nisi scelerisque eu 
ultrices vitae. Accumsan lacus vel facilisis volutpat est velit. Facilisis 
gravida neque convallis a cras semper auctor neque vitae. Tempor id eu nisl 
nunc mi ipsum. Adipiscing commodo elit at imperdiet dui accumsan sit. Tellus in 
metus vulputate eu scelerisque felis. Magna etiam tempor orci eu lobortis. 
Mattis enim ut tellus elementum sagittis vitae. Sit amet consectetur adipiscing 
elit duis tristique sollicitudin nibh sit. Sed ullamcorper morbi tincidunt 
ornare massa eget egestas purus. Eget est lorem ipsum dolor sit amet 
consectetur.
+16rmentum odio eu feugiat pretium nibh ipsum. Cras sed felis eget velit 
aliquet sagittis id consectetur. Amet commodo nulla facilisi nullam vehicula 
ipsum a. Nibh tellus molestie nunc non blandit massa enim nec. Urna neque 
viverra justo nec ultrices dui. Orci sagittis eu volutpat odio. Auctor augue 
mauris augue neque. Felis eget velit aliquet sagittis id consectetur purus ut 
faucibus. In ornare quam viverra orci sagittis eu. Pharetra sit amet aliquam 
id. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Vivamus arcu 
felis bibendum ut.
+17gnissim enim sit amet venenatis urna cursus eget nunc. Commodo viverra 
maecenas accumsan lacus vel facilisis volutpat. Velit aliquet sagittis id 
consectetur purus ut faucibus pulvinar elementum. Diam quis enim lobortis 
scelerisque fermentum dui. Vitae tempus quam pellentesque nec nam. Luctus 
venenatis lectus magna fringilla urna porttitor rhoncus d</fo:block>      
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>
+  </fo>
+  <checks>
+    <eval expected="3" xpath="count(//pageViewport)" />
+    <eval expected="1abitasse" xpath="//pageViewport[1]//word" />
+    <eval expected="7aculis" xpath="//pageViewport[2]//lineArea[4]//word" />
+    <eval expected="14as" xpath="//pageViewport[3]//lineArea[3]//word" />
+  </checks>
+</testcase>

Propchange: 
xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/flow_changing-ipd_6.xml
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-h...@xmlgraphics.apache.org

Reply via email to