Resolves: rhbz#1133863 fix looping layout

f41
Caolán McNamara 10 years ago
parent 7086d255d4
commit 9e18775ed6

@ -0,0 +1,49 @@
From 1fec67aab152e0c0ad6dd85082c50f1beff7d520 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 16 Sep 2014 13:22:44 +0100
Subject: [PATCH] Resolves: fdo#68967 looping layout
RemoveFollowFlowLine() marks the layout invalid, but the
next cycle through does everything exactly the same again.
Try the same foul horror as nUnSplitted. But at least with
a test-case that nails down reproducing the bug if a better
fix is needed.
Change-Id: Id6698bcb2364bd0253bedd4a7c313e25f705be8d
---
sw/qa/extras/ww8import/data/fdo68967.doc | Bin 0 -> 99328 bytes
sw/qa/extras/ww8import/ww8import.cxx | 4 ++++
sw/source/core/layout/tabfrm.cxx | 7 +++++++
3 files changed, 11 insertions(+)
create mode 100644 sw/qa/extras/ww8import/data/fdo68967.doc
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 06f38c7..f7a39f5 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -1831,6 +1831,7 @@ void SwTabFrm::MakeAll()
}
int nUnSplitted = 5; // Just another loop control :-(
+ int nThrowAwayValidLayoutLimit = 5; // And another one :-(
SWRECTFN( this )
while ( !mbValidPos || !mbValidSize || !mbValidPrtArea )
{
@@ -2301,7 +2302,13 @@ void SwTabFrm::MakeAll()
// An existing follow flow line has to be removed.
if ( HasFollowFlowLine() )
{
+ if (!nThrowAwayValidLayoutLimit)
+ continue;
+ bool bInitialLoopEndCondition = mbValidPos && mbValidSize && mbValidPrtArea;
RemoveFollowFlowLine();
+ bool bFinalLoopEndCondition = mbValidPos && mbValidSize && mbValidPrtArea;
+ if (bInitialLoopEndCondition && !bFinalLoopEndCondition)
+ --nThrowAwayValidLayoutLimit;
}
const bool bSplitError = !Split( nDeadLine, bTryToSplit, ( bTableRowKeep && !bAllowSplitOfRow ) );
--
1.9.3

@ -320,6 +320,7 @@ Patch28: 0001-create-a-master-document-template-type.patch
Patch29: 0001-Resolves-fdo-80911-don-t-swap-notes-page-width-heigh.patch Patch29: 0001-Resolves-fdo-80911-don-t-swap-notes-page-width-heigh.patch
Patch30: 0001-default-n-up-printing-of-notes-to-sensible-2-x-1-not.patch Patch30: 0001-default-n-up-printing-of-notes-to-sensible-2-x-1-not.patch
Patch31: 0001-n-up-printing-done-by-vcl-brochures-by-draw-impress.patch Patch31: 0001-n-up-printing-done-by-vcl-brochures-by-draw-impress.patch
Patch32: 0001-Resolves-fdo-68967-looping-layout.patch
%define instdir %{_libdir} %define instdir %{_libdir}
%define baseinstdir %{instdir}/libreoffice %define baseinstdir %{instdir}/libreoffice
@ -2298,6 +2299,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%changelog %changelog
* Tue Sep 23 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.2.2-2 * Tue Sep 23 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.2.2-2
- make brochure printing of impress/draw work out of the box - make brochure printing of impress/draw work out of the box
- Resolves: rhbz#1133863 fix looping layout
* Mon Sep 22 2014 David Tardon <dtardon@redhat.com> - 1:4.3.2.2-1 * Mon Sep 22 2014 David Tardon <dtardon@redhat.com> - 1:4.3.2.2-1
- update to 4.3.2 rc2 - update to 4.3.2 rc2

Loading…
Cancel
Save