summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/extras/odfexport/data/tdf135338_firstLeftPageFooter.odtbin0 -> 10687 bytes
-rw-r--r--sw/qa/extras/odfexport/odfexport.cxx7
-rw-r--r--sw/source/core/inc/frmtool.hxx2
-rw-r--r--sw/source/core/layout/frmtool.cxx5
-rw-r--r--sw/source/core/layout/newfrm.cxx2
5 files changed, 12 insertions, 4 deletions
diff --git a/sw/qa/extras/odfexport/data/tdf135338_firstLeftPageFooter.odt b/sw/qa/extras/odfexport/data/tdf135338_firstLeftPageFooter.odt
new file mode 100644
index 000000000000..4f9808875812
--- /dev/null
+++ b/sw/qa/extras/odfexport/data/tdf135338_firstLeftPageFooter.odt
Binary files differ
diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx
index f74980ebc51b..e28ae2515f0b 100644
--- a/sw/qa/extras/odfexport/odfexport.cxx
+++ b/sw/qa/extras/odfexport/odfexport.cxx
@@ -1666,6 +1666,13 @@ DECLARE_ODFEXPORT_TEST(testTdf118393, "tdf118393.odt")
CPPUNIT_ASSERT_EQUAL(OUString("Seite * von *"), parseDump("/root/page[7]/footer/txt/text()"));
}
+DECLARE_ODFEXPORT_TEST(testTdf135338_firstLeftPageFooter, "tdf135338_firstLeftPageFooter.odt")
+{
+ // The first page is a left page only style, but it should still show the first page footer
+ // instead of the left footer text "EVEN/LEFT (Left page only)"
+ CPPUNIT_ASSERT_EQUAL(OUString("First (Left page only)"), parseDump("/root/page[2]/footer/txt/text()"));
+}
+
DECLARE_ODFEXPORT_TEST(testGerrit13858, "gerrit13858.odt")
{
CPPUNIT_ASSERT_EQUAL(1, getShapes());
diff --git a/sw/source/core/inc/frmtool.hxx b/sw/source/core/inc/frmtool.hxx
index 9710bfab7cc1..027fd6b6461d 100644
--- a/sw/source/core/inc/frmtool.hxx
+++ b/sw/source/core/inc/frmtool.hxx
@@ -167,7 +167,7 @@ bool IsRightPageByNumber(SwRootFrame const& rLayout, sal_uInt16 nPageNum);
SwPageFrame *InsertNewPage( SwPageDesc &rDesc, SwFrame *pUpper,
bool isRightPage, bool bFirst, bool bInsertEmpty, bool bFootnote,
- SwFrame *pSibling );
+ SwFrame *pSibling, bool bVeryFirstPage = false );
// connect Flys with page
void RegistFlys( SwPageFrame*, const SwLayoutFrame* );
diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index 0ade3a3315ed..1cadf5f06aec 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -2998,7 +2998,8 @@ bool IsRightPageByNumber(SwRootFrame const& rLayout, sal_uInt16 const nPageNum)
SwPageFrame * InsertNewPage( SwPageDesc &rDesc, SwFrame *pUpper,
bool const isRightPage, bool const bFirst, bool bInsertEmpty,
bool const bFootnote,
- SwFrame *pSibling )
+ SwFrame *pSibling,
+ bool const bVeryFirstPage )
{
assert(pUpper);
assert(pUpper->IsRootFrame());
@@ -3030,7 +3031,7 @@ SwPageFrame * InsertNewPage( SwPageDesc &rDesc, SwFrame *pUpper,
// If there is no FrameFormat for this page, add an empty page
if ( !pFormat )
{
- pFormat = isRightPage ? rDesc.GetLeftFormat() : rDesc.GetRightFormat();
+ pFormat = isRightPage ? rDesc.GetLeftFormat(bVeryFirstPage) : rDesc.GetRightFormat(bVeryFirstPage);
OSL_ENSURE( pFormat, "Descriptor without any format?!" );
bInsertEmpty = !bInsertEmpty;
}
diff --git a/sw/source/core/layout/newfrm.cxx b/sw/source/core/layout/newfrm.cxx
index 07ba49b7b626..a24a23bc9f30 100644
--- a/sw/source/core/layout/newfrm.cxx
+++ b/sw/source/core/layout/newfrm.cxx
@@ -488,7 +488,7 @@ void SwRootFrame::Init( SwFrameFormat* pFormat )
// Create a page and put it in the layout
// The first page is always a right-page and always a first-page
- SwPageFrame *pPage = ::InsertNewPage(*pDesc, this, true, true, false, false, nullptr);
+ SwPageFrame *pPage = ::InsertNewPage(*pDesc, this, true, true, false, false, nullptr, true);
// Find the first page in the Bodytext section.
SwLayoutFrame *pLay = pPage->FindBodyCont();