sd/qa/uitest/impress_tests/exportToPDF.py | 9 +++++---- vcl/unx/generic/fontmanager/fontconfig.cxx | 17 ++++++++++++----- 2 files changed, 17 insertions(+), 9 deletions(-)
New commits: commit f8cd80fd3e243da96f6ba8b1406fc6e6fc2b862c Author: Caolán McNamara <[email protected]> AuthorDate: Sat Dec 13 10:42:40 2025 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Sat Dec 13 16:49:26 2025 +0100 This uitest depends on enabled poppler support Change-Id: Ia6df2c450d0f9d66e801f09d72b64bf5bf0a6499 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195594 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/sd/qa/uitest/impress_tests/exportToPDF.py b/sd/qa/uitest/impress_tests/exportToPDF.py index 0caf74a6f2b1..72d287079037 100644 --- a/sd/qa/uitest/impress_tests/exportToPDF.py +++ b/sd/qa/uitest/impress_tests/exportToPDF.py @@ -79,9 +79,10 @@ class exportToPDF(UITestCase): with self.ui_test.load_file(systemPathToFileUrl(xFilePath)) as document: - self.assertEqual("", document.DrawPages[0][0].String) - self.assertEqual(" ", document.DrawPages[0][1].String) - self.assertEqual(" ", document.DrawPages[0][2].String) - self.assertEqual("Hello World", document.DrawPages[0][3].String) + if os.getenv('ENABLE_POPPLER') == 'TRUE': + self.assertEqual("", document.DrawPages[0][0].String) + self.assertEqual(" ", document.DrawPages[0][1].String) + self.assertEqual(" ", document.DrawPages[0][2].String) + self.assertEqual("Hello World", document.DrawPages[0][3].String) # vim: set shiftwidth=4 softtabstop=4 expandtab: commit 9ba054a94a025ceb0cb281061ca77d399d3e3ffa Author: Caolán McNamara <[email protected]> AuthorDate: Thu Dec 11 09:47:14 2025 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Sat Dec 13 16:49:14 2025 +0100 don't abort in test mode for missing 0x3001 similar to how we allow missing 0xb7 Change-Id: I5206efa4b6d70ec432b8626eff3dd86d933e769e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195596 Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Jenkins diff --git a/vcl/unx/generic/fontmanager/fontconfig.cxx b/vcl/unx/generic/fontmanager/fontconfig.cxx index 642a1a7ef733..f7c63cbb55b9 100644 --- a/vcl/unx/generic/fontmanager/fontconfig.cxx +++ b/vcl/unx/generic/fontmanager/fontconfig.cxx @@ -1061,12 +1061,17 @@ void PrintFontManager::Substitute(vcl::font::FontSelectPattern &rPattern, OUStri OString aLangAttrib = mapToFontConfigLangTag(aLangTag); bool bMissingJustBullet = false; + bool bMissingIdeographicComma = false; // Add required Unicode characters, if any if ( !rMissingCodes.isEmpty() ) { FcCharSet *codePoints = FcCharSetCreate(); - bMissingJustBullet = rMissingCodes.getLength() == 1 && rMissingCodes[0] == 0xb7; + if (rMissingCodes.getLength() == 1) + { + bMissingJustBullet = rMissingCodes[0] == 0xb7; + bMissingIdeographicComma = rMissingCodes[0] == 0x3001; + } for( sal_Int32 nStrIndex = 0; nStrIndex < rMissingCodes.getLength(); ) { // also handle unicode surrogates @@ -1256,11 +1261,13 @@ void PrintFontManager::Substitute(vcl::font::FontSelectPattern &rPattern, OUStri }(); if (bAbortOnFontSubstitute && rPattern.maTargetName != rPattern.maSearchName) { - if (bMissingJustBullet) + if (bMissingJustBullet || bMissingIdeographicComma) { - // Some fonts exist in "more_fonts", but have no U+00B7 MIDDLE DOT - // so will always glyph fallback on measuring mnBulletOffset in - // FontMetricData::ImplInitTextLineSize + // Some fonts exist in "more_fonts", but: + // a) have no U+00B7 MIDDLE DOT so will always glyph fallback on + // measuring mnBulletOffset in FontMetricData::ImplInitTextLineSize + // b) have no U+3001 IDEOGRAPHIC COMMA so will always glyph fallback on + // measuring its width in FontMetricData::ImplInitFlags for CJK text return; } if (rPattern.maTargetName == "Linux Libertine G" && rPattern.maSearchName == "Linux Libertine O")
