diff options
author | Justin Luth <justin_luth@sil.org> | 2016-06-11 21:58:11 +0300 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-06-27 11:54:37 +0000 |
commit | 121109610f9af0b294cf042c6ae5abc6fcc4f326 (patch) | |
tree | 0f28d94ef7897f1ce84cd340732448c0cb8da32a | |
parent | f3f89f4f3180b0fd63c5290c665894c6a27f2ae2 (diff) |
tdf#76322 writer: allow column breaks in headers/footers
The code blocking this came in the original OpenOffice flowfrm.
Either IsInSct() or FindFooterOrHeader() works to resolve
this bug. I chose FindFooterOrHeader because it seemed
to match the existing targets (docbody, flyframe) better.
Change-Id: I51fc3bdc51c76e290b47ec7b9044780e5b67136c
Reviewed-on: https://gerrit.libreoffice.org/26208
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rwxr-xr-x | sw/qa/extras/odfimport/data/tdf76322_columnBreakInHeader.docx | bin | 0 -> 11357 bytes | |||
-rw-r--r-- | sw/qa/extras/odfimport/odfimport.cxx | 6 | ||||
-rw-r--r-- | sw/source/core/layout/flowfrm.cxx | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/sw/qa/extras/odfimport/data/tdf76322_columnBreakInHeader.docx b/sw/qa/extras/odfimport/data/tdf76322_columnBreakInHeader.docx Binary files differnew file mode 100755 index 000000000000..6c050ae80b0b --- /dev/null +++ b/sw/qa/extras/odfimport/data/tdf76322_columnBreakInHeader.docx diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx index 57182c158bad..ad475a5106df 100644 --- a/sw/qa/extras/odfimport/odfimport.cxx +++ b/sw/qa/extras/odfimport/odfimport.cxx @@ -631,6 +631,12 @@ DECLARE_ODFIMPORT_TEST(testBnc800714, "bnc800714.fodt") CPPUNIT_ASSERT(getProperty<bool>(getParagraph(2), "ParaKeepTogether")); } +DECLARE_ODFIMPORT_TEST(testTdf76322_columnBreakInHeader, "tdf76322_columnBreakInHeader.docx") +{ +// column breaks were ignored. First line should start in column 2 + CPPUNIT_ASSERT_EQUAL( OUString("Test1"), parseDump("/root/page[1]/header/section/column[2]/body/txt/text()") ); +} + DECLARE_ODFIMPORT_TEST(testTdf96113, "tdf96113.odt") { // Background of the formula frame was white (0xffffff), not green. diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx index dad6f97c0a89..a0d668d0ee93 100644 --- a/sw/source/core/layout/flowfrm.cxx +++ b/sw/source/core/layout/flowfrm.cxx @@ -1168,7 +1168,7 @@ bool SwFlowFrame::IsColBreak( bool bAct ) const { // Determine predecessor const SwFrame *pPrev = m_rThis.FindPrev(); - while( pPrev && ( ( !pPrev->IsInDocBody() && !m_rThis.IsInFly() ) || + while( pPrev && ( ( !pPrev->IsInDocBody() && !m_rThis.IsInFly() && !m_rThis.FindFooterOrHeader() ) || ( pPrev->IsTextFrame() && static_cast<const SwTextFrame*>(pPrev)->IsHiddenNow() ) ) ) pPrev = pPrev->FindPrev(); |