summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerge Krot <Serge.Krot@cib.de>2018-03-15 11:17:42 +0100
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2018-03-15 16:53:19 +0100
commit3c3f10da500967fc6ffecc2f3e076d8ff43e7503 (patch)
tree33fee5483ed93eb895de9daa4edc5fefc5757871
parent17b57caf83425d086ac8aa5c89815ed3dc3bc286 (diff)
tdf#112448: Fix: take correct line height
When line metrics is not calculated we need to call CalcRealHeight() before usage of the Height() and GetRealHeight(). Change-Id: I104bbb81ea9d7130dfd728f7114d02e3672afbc3 Reviewed-on: https://gerrit.libreoffice.org/51319 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
-rwxr-xr-xsw/qa/extras/uiwriter/data/tdf112448.odtbin0 -> 10574 bytes
-rw-r--r--sw/qa/extras/uiwriter/uiwriter.cxx15
-rw-r--r--sw/source/core/text/itrform2.cxx6
3 files changed, 18 insertions, 3 deletions
diff --git a/sw/qa/extras/uiwriter/data/tdf112448.odt b/sw/qa/extras/uiwriter/data/tdf112448.odt
new file mode 100755
index 000000000000..ffb1ef6b6860
--- /dev/null
+++ b/sw/qa/extras/uiwriter/data/tdf112448.odt
Binary files differ
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx
index 703232b9cb8c..63f02288c8f4 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -295,6 +295,7 @@ public:
void testTdf99689TableOfContents();
void testTdf99689TableOfFigures();
void testTdf99689TableOfTables();
+ void testTdf112448();
void testTdf113790();
void testTdf108048();
void testTdf114306();
@@ -477,6 +478,7 @@ public:
CPPUNIT_TEST(testTdf99689TableOfContents);
CPPUNIT_TEST(testTdf99689TableOfFigures);
CPPUNIT_TEST(testTdf99689TableOfTables);
+ CPPUNIT_TEST(testTdf112448);
CPPUNIT_TEST(testTdf113790);
CPPUNIT_TEST(testTdf108048);
CPPUNIT_TEST(testTdf114306);
@@ -5777,6 +5779,19 @@ void SwUiWriterTest::testParagraphOfTextRange()
CPPUNIT_ASSERT_EQUAL(OUString("In section"), xParagraph->getString());
}
+// tdf#112448: Fix: take correct line height
+//
+// When line metrics is not calculated we need to call CalcRealHeight()
+// before usage of the Height() and GetRealHeight().
+void SwUiWriterTest::testTdf112448()
+{
+ createDoc("tdf112448.odt");
+
+ // check actual number of line breaks in the paragraph
+ xmlDocPtr pXmlDoc = parseLayoutDump();
+ assertXPath(pXmlDoc, "/root/page/body/txt/LineBreak", 2);
+}
+
void SwUiWriterTest::testTdf113790()
{
SwDoc* pDoc = createDoc("tdf113790.docx");
diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx
index 382fe7c24258..fd91902a920c 100644
--- a/sw/source/core/text/itrform2.cxx
+++ b/sw/source/core/text/itrform2.cxx
@@ -2256,13 +2256,13 @@ void SwTextFormatter::CalcFlyWidth( SwTextFormatInfo &rInf )
}
else
{
- nAscent = pLast->GetAscent();
- nHeight = pLast->Height();
-
// We make a first guess for the lines real height
if ( ! m_pCurr->GetRealHeight() )
CalcRealHeight();
+ nAscent = pLast->GetAscent();
+ nHeight = pLast->Height();
+
if ( m_pCurr->GetRealHeight() > nHeight )
nTop += m_pCurr->GetRealHeight() - nHeight;
else