summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2017-04-26 17:10:09 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-05-02 18:58:01 +0200
commit253a345ccd0bd499950759c792da62fe9dc437ee (patch)
treec23a50f6659378b70a5608115a2a81273b1e8499
parent6d5b1ba501771cfa693b46d82ec88333302f02bb (diff)
tdf#107398 sw: do not leave empty footnote container in layout
... when applying loop control in SwFlowFrame::MoveBwd(). The SwFootnoteContFrame is newly created in MoveBwd(), line 2062: pNewUpper = m_rThis.GetLeaf( MAKEPAGE_FTN, false ); If it stays empty, that is not a valid layout so delete it again. Since the idle/timer refactoring in VCL the invalid layout stays until the document is closed; presumably before LO 5.0 the timer based layout would reformat things again. (regression from af41b7f91f22052d49654d41ae9916d6981db3f6) Change-Id: I841f42b465f8123f9246f1fa70d1417ffdd57700 (cherry picked from commit e15b8997f0d2e54fa7b8345063755616d0b100b9) Reviewed-on: https://gerrit.libreoffice.org/37008 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 27bbee974eaf59f722c115c9717faa8c74b9d815) Reviewed-on: https://gerrit.libreoffice.org/37058 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
-rw-r--r--sw/source/core/layout/flowfrm.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx
index 29e1300a4a98..7ab8e85c7119 100644
--- a/sw/source/core/layout/flowfrm.cxx
+++ b/sw/source/core/layout/flowfrm.cxx
@@ -2404,6 +2404,12 @@ bool SwFlowFrame::MoveBwd( bool &rbReformat )
( pNextNewUpper == m_rThis.GetUpper() ||
pNextNewUpper->GetType() != m_rThis.GetUpper()->GetType() ) )
{
+ // tdf#107398 do not leave empty footnote container around
+ if (!pNewUpper->Lower() && pNewUpper->IsFootnoteContFrame())
+ {
+ pNewUpper->Cut();
+ SwFrame::DestroyFrame(pNewUpper);
+ }
pNewUpper = nullptr;
OSL_FAIL( "<SwFlowFrame::MoveBwd(..)> - layout loop control for layout action <Move Backward> applied!" );
}