From de00379a8449375fddadd454ec343c92b63e66cf Mon Sep 17 00:00:00 2001 From: Simon Steiner Date: Tue, 28 Sep 2021 14:28:08 +0000 Subject: [PATCH] FOP-3027: Sections of text sometimes lost with span=all multiple columns git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1893708 13f79535-47bb-0310-9956-ffa450edef68 --- .../fop/layoutmgr/FlowLayoutManager.java | 2 +- .../standard-testcases/flow_changing-span.xml | 83 +++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 fop/test/layoutengine/standard-testcases/flow_changing-span.xml diff --git a/fop-core/src/main/java/org/apache/fop/layoutmgr/FlowLayoutManager.java b/fop-core/src/main/java/org/apache/fop/layoutmgr/FlowLayoutManager.java index 1ac70da82..9a625ad73 100644 --- a/fop-core/src/main/java/org/apache/fop/layoutmgr/FlowLayoutManager.java +++ b/fop-core/src/main/java/org/apache/fop/layoutmgr/FlowLayoutManager.java @@ -138,7 +138,7 @@ public class FlowLayoutManager extends BlockStackingLayoutManager { private List addChildElements(List elements, LayoutManager childLM, LayoutContext context, int alignment, Stack lmStack, Position position, LayoutManager restartAtLM) { - if (handleSpanChange(childLM, context)) { + if (handleSpanChange(childLM, context) && position == null) { SpaceResolver.resolveElementList(elements); return elements; } diff --git a/fop/test/layoutengine/standard-testcases/flow_changing-span.xml b/fop/test/layoutengine/standard-testcases/flow_changing-span.xml new file mode 100644 index 000000000..d29bd25b5 --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/flow_changing-span.xml @@ -0,0 +1,83 @@ + + + + + +

+ This test checks that blocks of texts are re-laid out after a change of the flow ipd. +

+
+ + + + + + + + + + + + + + + + + + + + + + 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vulputate ante interdum malesuada suscipit. Pellentesque in ligula lobortis, ullamcorper ante sed, lacinia nisl. Cras at vestibulum enim. Praesent velit leo, ullamcorper vel velit quis, euismod blandit leo. Maecenas placerat fringilla purus. Sed sit amet justo in tellus laoreet suscipit a ac quam. Praesent elementum ut erat vitae lacinia. Phasellus at congue sapien. In ultrices nec dolor ut pulvinar. Pellentesque eleifend ornare quam, sit amet porttitor odio ultricies in. Maecenas sed diam semper, lacinia enim vitae, volutpat libero. + 2. Phasellus luctus hendrerit pulvinar. Praesent eros sapien, fermentum non lorem quis, ornare elementum arcu. Nam pulvinar nisi ac dictum lacinia. Cras non fermentum libero, tempus euismod nibh. Fusce tincidunt nisl eget eros posuere tincidunt nec eget ipsum. Mauris lobortis at eros ac lobortis. Sed leo ex, molestie eget tortor vel, volutpat ultrices enim. In eu magna dapibus, fringilla velit et, hendrerit lacus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut eget leo sed urna commodo posuere. Ut in tortor massa. Nam tempus augue nec metus tempus congue. Nam vel purus a sem vehicula congue id nec dolor. Sed suscipit vitae enim a scelerisque. Donec molestie vestibulum pellentesque. Ut dignissim libero venenatis facilisis egestas. + 3. Nullam malesuada eros eu dolor suscipit, eu consectetur metus aliquam. Curabitur vestibulum non orci eu ultrices. Proin nisl urna, dictum nec iaculis nec, dictum ac arcu. Ut cursus nibh eu mi scelerisque tincidunt. Pellentesque et hendrerit libero, a porta diam. Ut accumsan mauris eget viverra vulputate. Suspendisse semper tempor eros, at dignissim diam aliquam eu. + 4. Nulla pulvinar est est, eu congue orci gravida quis. Sed at vulputate quam, eget commodo ante. Suspendisse vitae dolor eget nisi consequat lobortis ut vulputate sem. Praesent feugiat nunc lorem, sed ultricies enim accumsan in. Donec auctor dui purus, a finibus sapien ornare ac. Nulla at nisi sed urna tincidunt bibendum. Phasellus tellus enim, pellentesque scelerisque neque nec, vulputate congue augue. In congue risus purus, eget aliquet neque tempus id. Phasellus at lorem a dolor hendrerit rhoncus sit amet semper odio. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas pellentesque cursus leo non ultrices. Aliquam vitae bibendum velit. Fusce at eleifend ipsum, at laoreet sapien. Nunc scelerisque consectetur eleifend. Nulla a iaculis purus, vitae pharetra sapien. + 5. Phasellus non tellus gravida, feugiat sapien id, eleifend leo. Aenean ut lacinia elit. Donec a augue mauris. Cras at posuere massa, vitae placerat risus. Donec ullamcorper metus a accumsan vestibulum. Integer bibendum laoreet tempor. Mauris pulvinar tortor in turpis suscipit, vel lobortis nisi aliquet. Nulla facilisi. + 6. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vulputate ante interdum malesuada suscipit. Pellentesque in ligula lobortis, ullamcorper ante sed, lacinia nisl. Cras at vestibulum enim. Praesent velit leo, ullamcorper vel velit quis, euismod blandit leo. Maecenas placerat fringilla purus. Sed sit amet justo in tellus laoreet suscipit a ac quam. Praesent elementum ut erat vitae lacinia. Phasellus at congue sapien. In ultrices nec dolor ut pulvinar. Pellentesque eleifend ornare quam, sit amet porttitor odio ultricies in. Maecenas sed diam semper, lacinia enim vitae, volutpat libero. + 7. Phasellus luctus hendrerit pulvinar. Praesent eros sapien, fermentum non lorem quis, ornare elementum arcu. Nam pulvinar nisi ac dictum lacinia. Cras non fermentum libero, tempus euismod nibh. Fusce tincidunt nisl eget eros posuere tincidunt nec eget ipsum. Mauris lobortis at eros ac lobortis. Sed leo ex, molestie eget tortor vel, volutpat ultrices enim. In eu magna dapibus, fringilla velit et, hendrerit lacus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut eget leo sed urna commodo posuere. Ut in tortor massa. Nam tempus augue nec metus tempus congue. Nam vel purus a sem vehicula congue id nec dolor. Sed suscipit vitae enim a scelerisque. Donec molestie vestibulum pellentesque. Ut dignissim libero venenatis facilisis egestas. + 8. Nullam malesuada eros eu dolor suscipit, eu consectetur metus aliquam. Curabitur vestibulum non orci eu ultrices. Proin nisl urna, dictum nec iaculis nec, dictum ac arcu. Ut cursus nibh eu mi scelerisque tincidunt. Pellentesque et hendrerit libero, a porta diam. Ut accumsan mauris eget viverra vulputate. Suspendisse semper tempor eros, at dignissim diam aliquam eu. + 9. Nulla pulvinar est est, eu congue orci gravida quis. Sed at vulputate quam, eget commodo ante. Suspendisse vitae dolor eget nisi consequat lobortis ut vulputate sem. Praesent feugiat nunc lorem, sed ultricies enim accumsan in. Donec auctor dui purus, a finibus sapien ornare ac. Nulla at nisi sed urna tincidunt bibendum. Phasellus tellus enim, pellentesque scelerisque neque nec, vulputate congue augue. In congue risus purus, eget aliquet neque tempus id. Phasellus at lorem a dolor hendrerit rhoncus sit amet semper odio. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas pellentesque cursus leo non ultrices. Aliquam vitae bibendum velit. Fusce at eleifend ipsum, at laoreet sapien. Nunc scelerisque consectetur eleifend. Nulla a iaculis purus, vitae pharetra sapien. + 10. Phasellus non tellus gravida, feugiat sapien id, eleifend leo. Aenean ut lacinia elit. Donec a augue mauris. Cras at posuere massa, vitae placerat risus. Donec ullamcorper metus a accumsan vestibulum. Integer bibendum laoreet tempor. Mauris pulvinar tortor in turpis suscipit, vel lobortis nisi aliquet. Nulla facilisi. + 11. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vulputate ante interdum malesuada suscipit. Pellentesque in ligula lobortis, ullamcorper ante sed, lacinia nisl. Cras at vestibulum enim. Praesent velit leo, ullamcorper vel velit quis, euismod blandit leo. Maecenas placerat fringilla purus. Sed sit amet justo in tellus laoreet suscipit a ac quam. Praesent elementum ut erat vitae lacinia. Phasellus at congue sapien. In ultrices nec dolor ut pulvinar. Pellentesque eleifend ornare quam, sit amet porttitor odio ultricies in. Maecenas sed diam semper, lacinia enim vitae, volutpat libero. + + 12. Phasellus luctus hendrerit pulvinar. Praesent eros sapien, fermentum non lorem quis, ornare elementum arcu. Nam pulvinar nisi ac dictum lacinia. Cras non fermentum libero, tempus euismod nibh. Fusce tincidunt nisl eget eros posuere tincidunt nec eget ipsum. Mauris lobortis at eros ac lobortis. Sed leo ex, molestie eget tortor vel, volutpat ultrices enim. In eu magna dapibus, fringilla velit et, hendrerit lacus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut eget leo sed urna commodo posuere. Ut in tortor massa. Nam tempus augue nec metus tempus congue. Nam vel purus a sem vehicula congue id nec dolor. Sed suscipit vitae enim a scelerisque. Donec molestie vestibulum pellentesque. Ut dignissim libero venenatis facilisis egestas. + 13. Nullam malesuada eros eu dolor suscipit, eu consectetur metus aliquam. Curabitur vestibulum non orci eu ultrices. Proin nisl urna, dictum nec iaculis nec, dictum ac arcu. Ut cursus nibh eu mi scelerisque tincidunt. Pellentesque et hendrerit libero, a porta diam. Ut accumsan mauris eget viverra vulputate. Suspendisse semper tempor eros, at dignissim diam aliquam eu. + + 14. Nulla pulvinar est est, eu congue orci gravida quis. Sed at vulputate quam, eget commodo ante. Suspendisse vitae dolor eget nisi consequat lobortis ut vulputate sem. Praesent feugiat nunc lorem, sed ultricies enim accumsan in. Donec auctor dui purus, a finibus sapien ornare ac. Nulla at nisi sed urna tincidunt bibendum. Phasellus tellus enim, pellentesque scelerisque neque nec, vulputate congue augue. In congue risus purus, eget aliquet neque tempus id. Phasellus at lorem a dolor hendrerit rhoncus sit amet semper odio. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas pellentesque cursus leo non ultrices. Aliquam vitae bibendum velit. Fusce at eleifend ipsum, at laoreet sapien. Nunc scelerisque consectetur eleifend. Nulla a iaculis purus, vitae pharetra sapien. + 15. Phasellus non tellus gravida, feugiat sapien id, eleifend leo. Aenean ut lacinia elit. Donec a augue mauris. Cras at posuere massa, vitae placerat risus. Donec ullamcorper metus a accumsan vestibulum. Integer bibendum laoreet tempor. Mauris pulvinar tortor in turpis suscipit, vel lobortis nisi aliquet. Nulla facilisi. + 16. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vulputate ante interdum malesuada suscipit. Pellentesque in ligula lobortis, ullamcorper ante sed, lacinia nisl. Cras at vestibulum enim. Praesent velit leo, ullamcorper vel velit quis, euismod blandit leo. Maecenas placerat fringilla purus. Sed sit amet justo in tellus laoreet suscipit a ac quam. Praesent elementum ut erat vitae lacinia. Phasellus at congue sapien. In ultrices nec dolor ut pulvinar. Pellentesque eleifend ornare quam, sit amet porttitor odio ultricies in. Maecenas sed diam semper, lacinia enim vitae, volutpat libero. + 17. Phasellus luctus hendrerit pulvinar. Praesent eros sapien, fermentum non lorem quis, ornare elementum arcu. Nam pulvinar nisi ac dictum lacinia. Cras non fermentum libero, tempus euismod nibh. Fusce tincidunt nisl eget eros posuere tincidunt nec eget ipsum. Mauris lobortis at eros ac lobortis. Sed leo ex, molestie eget tortor vel, volutpat ultrices enim. In eu magna dapibus, fringilla velit et, hendrerit lacus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut eget leo sed urna commodo posuere. Ut in tortor massa. Nam tempus augue nec metus tempus congue. Nam vel purus a sem vehicula congue id nec dolor. Sed suscipit vitae enim a scelerisque. Donec molestie vestibulum pellentesque. Ut dignissim libero venenatis facilisis egestas. + 18. Nullam malesuada eros eu dolor suscipit, eu consectetur metus aliquam. Curabitur vestibulum non orci eu ultrices. Proin nisl urna, dictum nec iaculis nec, dictum ac arcu. Ut cursus nibh eu mi scelerisque tincidunt. Pellentesque et hendrerit libero, a porta diam. Ut accumsan mauris eget viverra vulputate. Suspendisse semper tempor eros, at dignissim diam aliquam eu. + 19. Nulla pulvinar est est, eu congue orci gravida quis. Sed at vulputate quam, eget commodo ante. Suspendisse vitae dolor eget nisi consequat lobortis ut vulputate sem. Praesent feugiat nunc lorem, sed ultricies enim accumsan in. Donec auctor dui purus, a finibus sapien ornare ac. Nulla at nisi sed urna tincidunt bibendum. Phasellus tellus enim, pellentesque scelerisque neque nec, vulputate congue augue. In congue risus purus, eget aliquet neque tempus id. Phasellus at lorem a dolor hendrerit rhoncus sit amet semper odio. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas pellentesque cursus leo non ultrices. Aliquam vitae bibendum velit. Fusce at eleifend ipsum, at laoreet sapien. Nunc scelerisque consectetur eleifend. Nulla a iaculis purus, vitae pharetra sapien. + 20. Phasellus non tellus gravida, feugiat sapien id, eleifend leo. Aenean ut lacinia elit. Donec a augue mauris. Cras at posuere massa, vitae placerat risus. Donec ullamcorper metus a accumsan vestibulum. Integer bibendum laoreet tempor. Mauris pulvinar tortor in turpis suscipit, vel lobortis nisi aliquet. Nulla facilisi. + 21. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vulputate ante interdum malesuada suscipit. Pellentesque in ligula lobortis, ullamcorper ante sed, lacinia nisl. Cras at vestibulum enim. Praesent velit leo, ullamcorper vel velit quis, euismod blandit leo. Maecenas placerat fringilla purus. Sed sit amet justo in tellus laoreet suscipit a ac quam. Praesent elementum ut erat vitae lacinia. Phasellus at congue sapien. In ultrices nec dolor ut pulvinar. Pellentesque eleifend ornare quam, sit amet porttitor odio ultricies in. Maecenas sed diam semper, lacinia enim vitae, volutpat libero. + 22. Phasellus luctus hendrerit pulvinar. Praesent eros sapien, fermentum non lorem quis, ornare elementum arcu. Nam pulvinar nisi ac dictum lacinia. Cras non fermentum libero, tempus euismod nibh. Fusce tincidunt nisl eget eros posuere tincidunt nec eget ipsum. Mauris lobortis at eros ac lobortis. Sed leo ex, molestie eget tortor vel, volutpat ultrices enim. In eu magna dapibus, fringilla velit et, hendrerit lacus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut eget leo sed urna commodo posuere. Ut in tortor massa. Nam tempus augue nec metus tempus congue. Nam vel purus a sem vehicula congue id nec dolor. Sed suscipit vitae enim a scelerisque. Donec molestie vestibulum pellentesque. Ut dignissim libero venenatis facilisis egestas. + 23. Nullam malesuada eros eu dolor suscipit, eu consectetur metus aliquam. Curabitur vestibulum non orci eu ultrices. Proin nisl urna, dictum nec iaculis nec, dictum ac arcu. Ut cursus nibh eu mi scelerisque tincidunt. Pellentesque et hendrerit libero, a porta diam. Ut accumsan mauris eget viverra vulputate. Suspendisse semper tempor eros, at dignissim diam aliquam eu. + 24. Nulla pulvinar est est, eu congue orci gravida quis. Sed at vulputate quam, eget commodo ante. Suspendisse vitae dolor eget nisi consequat lobortis ut vulputate sem. Praesent feugiat nunc lorem, sed ultricies enim accumsan in. Donec auctor dui purus, a finibus sapien ornare ac. Nulla at nisi sed urna tincidunt bibendum. Phasellus tellus enim, pellentesque scelerisque neque nec, vulputate congue augue. In congue risus purus, eget aliquet neque tempus id. Phasellus at lorem a dolor hendrerit rhoncus sit amet semper odio. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas pellentesque cursus leo non ultrices. Aliquam vitae bibendum velit. Fusce at eleifend ipsum, at laoreet sapien. Nunc scelerisque consectetur eleifend. Nulla a iaculis purus, vitae pharetra sapien. + 25. Phasellus non tellus gravida, feugiat sapien id, eleifend leo. Aenean ut lacinia elit. Donec a augue mauris. Cras at posuere massa, vitae placerat risus. Donec ullamcorper metus a accumsan vestibulum. Integer bibendum laoreet tempor. Mauris pulvinar tortor in turpis suscipit, vel lobortis nisi aliquet. Nulla facilisi. + + + + + + + + + + +
-- 2.39.5