diff options
-rwxr-xr-x | sw/qa/extras/ww8import/data/n823651.doc | bin | 0 -> 30720 bytes | |||
-rw-r--r-- | sw/qa/extras/ww8import/ww8import.cxx | 10 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par.cxx | 6 |
3 files changed, 14 insertions, 2 deletions
diff --git a/sw/qa/extras/ww8import/data/n823651.doc b/sw/qa/extras/ww8import/data/n823651.doc Binary files differnew file mode 100755 index 000000000000..51b383c42d5d --- /dev/null +++ b/sw/qa/extras/ww8import/data/n823651.doc diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx index 0ded9f7714b9..ef68da693fed 100644 --- a/sw/qa/extras/ww8import/ww8import.cxx +++ b/sw/qa/extras/ww8import/ww8import.cxx @@ -35,6 +35,7 @@ public: void testN816603(); void testN816593(); void testPageBorder(); + void testN823651(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -61,6 +62,7 @@ void Test::run() {"n816603.doc", &Test::testN816603}, {"n816593.doc", &Test::testN816593}, {"page-border.doc", &Test::testPageBorder}, + {"n823651.doc", &Test::testN823651}, }; header(); for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) @@ -282,6 +284,14 @@ void Test::testPageBorder() CPPUNIT_ASSERT_EQUAL(sal_uInt32(TWIP_TO_MM100(6 * 20)), aBorder.LineWidth); } +void Test::testN823651() +{ + // Character height was 10pt instead of 7.5pt in the header. + uno::Reference<beans::XPropertySet> xStyle(getStyles("PageStyles")->getByName(DEFAULT_STYLE), uno::UNO_QUERY); + uno::Reference<text::XText> xText = getProperty< uno::Reference<text::XTextRange> >(xStyle, "HeaderTextFirst")->getText(); + CPPUNIT_ASSERT_EQUAL(7.5f, getProperty<float>(getParagraphOfText(1, xText), "CharHeight")); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index 26c788924ca0..bf5bea0953b4 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -2005,6 +2005,8 @@ void SwWW8ImplReader::Read_HdFt(int nSect, const SwPageDesc *pPrev, : pPD->GetMaster(); SwFrmFmt* pHdFtFmt; + // If we have empty first page header and footer. + bool bNoFirst = !(grpfIhdt & WW8_HEADER_FIRST) && !(grpfIhdt & WW8_FOOTER_FIRST); if (bFooter) { bIsFooter = true; @@ -2013,7 +2015,7 @@ void SwWW8ImplReader::Read_HdFt(int nSect, const SwPageDesc *pPrev, pPD->GetMaster().SetFmtAttr(SwFmtFooter(true)); if (bUseLeft) pPD->GetLeft().SetFmtAttr(SwFmtFooter(true)); - if (bUseFirst) + if (bUseFirst || (rSection.maSep.fTitlePage && bNoFirst)) pPD->GetFirst().SetFmtAttr(SwFmtFooter(true)); pHdFtFmt = const_cast<SwFrmFmt*>(rFmt.GetFooter().GetFooterFmt()); } @@ -2025,7 +2027,7 @@ void SwWW8ImplReader::Read_HdFt(int nSect, const SwPageDesc *pPrev, pPD->GetMaster().SetFmtAttr(SwFmtHeader(true)); if (bUseLeft) pPD->GetLeft().SetFmtAttr(SwFmtHeader(true)); - if (bUseFirst) + if (bUseFirst || (rSection.maSep.fTitlePage && bNoFirst)) pPD->GetFirst().SetFmtAttr(SwFmtHeader(true)); pHdFtFmt = const_cast<SwFrmFmt*>(rFmt.GetHeader().GetHeaderFmt()); } |