[Libreoffice-commits] core.git: sw/qa sw/source
Mark Hung
marklh9 at gmail.com
Mon Jun 5 15:25:36 UTC 2017
sw/qa/extras/uiwriter/data/tdf58604.odt |binary
sw/qa/extras/uiwriter/uiwriter.cxx | 12 ++++++++++++
sw/source/core/text/guess.cxx | 5 +++++
3 files changed, 17 insertions(+)
New commits:
commit 89f038765a36a938961863efea2e0e07515f44d6
Author: Mark Hung <marklh9 at gmail.com>
Date: Tue May 30 19:57:53 2017 +0800
tdf#58604 keep line break follows hanging punctuation.
Do not treat the line as full if the chacracter following
the hanging punctuation is a line break, so that the line
break is placed after the hanging punctuation instead of
at the beginning of the next line.
Change-Id: Ia6e07cf457b3e1ba39700eb6d6dc74e4b57b64de
Reviewed-on: https://gerrit.libreoffice.org/38216
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Mark Hung <marklh9 at gmail.com>
diff --git a/sw/qa/extras/uiwriter/data/tdf58604.odt b/sw/qa/extras/uiwriter/data/tdf58604.odt
new file mode 100755
index 000000000000..34c51c518325
Binary files /dev/null and b/sw/qa/extras/uiwriter/data/tdf58604.odt differ
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx
index 2452ad422c21..3239e1b2184d 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -250,6 +250,7 @@ public:
void testTdf105417();
void testTdf105625();
void testTdf106736();
+ void testTdf58604();
void testMsWordCompTrailingBlanks();
void testCreateDocxAnnotation();
void testTdf107976();
@@ -390,6 +391,7 @@ public:
CPPUNIT_TEST(testTdf105417);
CPPUNIT_TEST(testTdf105625);
CPPUNIT_TEST(testTdf106736);
+ CPPUNIT_TEST(testTdf58604);
CPPUNIT_TEST(testMsWordCompTrailingBlanks);
CPPUNIT_TEST(testCreateDocxAnnotation);
CPPUNIT_TEST(testTdf107976);
@@ -4942,6 +4944,16 @@ void SwUiWriterTest::testTdf107976()
CPPUNIT_ASSERT(!pTransferable2->GetShell());
}
+void SwUiWriterTest::testTdf58604()
+{
+#ifdef WNT
+ // Allow linebreak character follows hanging punctuation immediately instead of
+ // breaking at the start of the next line.
+ load(DATA_DIRECTORY, "tdf58604.odt");
+ CPPUNIT_ASSERT_EQUAL( OUString("POR_BRK"), parseDump( "(/root/page/body/txt/LineBreak[1]/preceding::Text)[last()]", "nType" ) );
+#endif
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(SwUiWriterTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/core/text/guess.cxx b/sw/source/core/text/guess.cxx
index 066d45a5a2fa..ca432b1b5f68 100644
--- a/sw/source/core/text/guess.cxx
+++ b/sw/source/core/text/guess.cxx
@@ -533,7 +533,12 @@ bool SwTextGuess::Guess( const SwTextPortion& rPor, SwTextFormatInfo &rInf,
nBreakWidth = 0;
if( pHanging )
+ {
nBreakPos = nCutPos;
+ // Keep following SwBreakPortion in the same line.
+ if ( CH_BREAK == rInf.GetChar( nBreakPos + pHanging->GetLen() ) )
+ return true;
+ }
return false;
}
More information about the Libreoffice-commits
mailing list