[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-6-4' - sw/qa sw/source
Attila Bakos (via logerrit)
logerrit at kemper.freedesktop.org
Wed Oct 14 21:29:05 UTC 2020
sw/qa/extras/layout/data/tdf136588.docx |binary
sw/qa/extras/layout/layout.cxx | 11 +++++++++++
sw/source/core/txtnode/fntcache.cxx | 7 +++++++
3 files changed, 18 insertions(+)
New commits:
commit b16a19330820b3b7d11ca342ac0f26b13afd4f42
Author: Attila Bakos <bakos.attilakaroly at nisz.hu>
AuthorDate: Tue Sep 22 16:37:22 2020 +0200
Commit: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
CommitDate: Wed Oct 14 23:28:30 2020 +0200
tdf#136588 sw: fix line break regression with small caps
Regression from commit 1b03a449161af225302e4b4dd2bb2e69c6d8d170
(tdf#112290 sw: fix missing line break in small capital).
This replaces the previous commit with a better solution.
Change-Id: I7510b78cd6520f260e6a3804ec69e0364b93440f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103178
Tested-by: László Németh <nemeth at numbertext.org>
Reviewed-by: László Németh <nemeth at numbertext.org>
(cherry picked from commit 0d28097fadf44ed58cb5e3e9b9c04a65a7a33fd6)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104329
Tested-by: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
Reviewed-by: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
diff --git a/sw/qa/extras/layout/data/tdf136588.docx b/sw/qa/extras/layout/data/tdf136588.docx
new file mode 100644
index 000000000000..606931286470
Binary files /dev/null and b/sw/qa/extras/layout/data/tdf136588.docx differ
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 3a35e5d8b297..ccab53a7f920 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -204,6 +204,17 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testRedlineFootnotes)
CheckRedlineFootnotesHidden();
}
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, TestTdf136588)
+{
+ load(DATA_DIRECTORY, "tdf136588.docx");
+ auto pXMLLayoutDump = parseLayoutDump();
+ CPPUNIT_ASSERT(pXMLLayoutDump);
+
+ //there was a bad line break before, the correct break layout is this:
+ assertXPath(pXMLLayoutDump, "/root/page/body/txt[2]/LineBreak[2]", "Line",
+ "effectively by modern-day small to ");
+}
+
CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testRedlineFlysInBody)
{
loadURL("private:factory/swriter", nullptr);
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 6fa6b159705a..ccd509449048 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -2536,6 +2536,13 @@ TextFrameIndex SwFont::GetTextBreak(SwDrawTextInfo const & rInf, long nTextWidth
? TextFrameIndex(COMPLETE_STRING)
: nTextBreak;
+ // tdf112290 tdf136588 Break the line correctly only if there is an image inline,
+ // and the image wider than the line...
+ if (GetCaseMap() == SvxCaseMap::SmallCaps && TextFrameIndex(COMPLETE_STRING) == nTextBreak2 &&
+ ! bCompress && nTextWidth == 0)
+ // If nTextWidth == 0 means the line is full, we have to break it
+ nTextBreak2 = TextFrameIndex(1);
+
if ( ! bCompress )
return nTextBreak2;
More information about the Libreoffice-commits
mailing list