vcl/quartz/SystemFontList.cxx | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
New commits: commit 1b83c52c0de927e6eb5c6f03eecc6e477c8a36ea Author: Patrick Luby <guibmac...@gmail.com> AuthorDate: Sat Sep 28 21:09:24 2024 -0400 Commit: Adolfo Jayme Barrientos <fit...@ubuntu.com> CommitDate: Mon Sep 30 03:24:57 2024 +0200 tdf#163000 don't add any fonts in the system "reserved fonts" folder macOS Sequoia added a new PingFangUI.ttc font file which contains all of the PingFang font families. However, any fonts loaded from this font file result in the following failures: - Skia renders font with wrong glyphs - Export to PDF contain a damaged embedded font macOS Sequoia still has separate, downloadable Type 3 bitmap fonts for the PingFang font family so ignore any fonts in the PingFangUI.ttc font file and, just to be safe, ignore any other font files in the system "reserved fonts" folder that may be added in the future. Change-Id: I8a025c8b6d84a661b173aa7d6d5b261c92452b34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174160 Reviewed-by: Jonathan Clark <jonat...@libreoffice.org> Reviewed-by: Patrick Luby <guibomac...@gmail.com> Tested-by: Jenkins (cherry picked from commit 8f3e84133628c420b7cc9896d6e92e2d66eae0b2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174016 Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/vcl/quartz/SystemFontList.cxx b/vcl/quartz/SystemFontList.cxx index e068caf80fb6..c04c8fdd1f72 100644 --- a/vcl/quartz/SystemFontList.cxx +++ b/vcl/quartz/SystemFontList.cxx @@ -212,6 +212,34 @@ static void fontEnumCallBack( const void* pValue, void* pContext ) { CTFontDescriptorRef pFD = static_cast<CTFontDescriptorRef>(pValue); + // tdf#163000 don't add any fonts in the system "reserved fonts" folder + // macOS Sequoia added a new PingFangUI.ttc font file which + // contains all of the PingFang font families. However, any + // fonts loaded from this font file result in the following + // failures: + // - Skia renders font with wrong glyphs + // - Export to PDF contain a damaged embedded font + // macOS Sequoia still has separate, downloadable Type 3 + // bitmap fonts for the PingFang font family so ignore + // any fonts in the PingFangUI.ttc font file and, just to + // be safe, ignore any other font files in the system + // "reserved fonts" folder that may be added in the future. + CFURLRef pFontURL = static_cast<CFURLRef>(CTFontDescriptorCopyAttribute(pFD, kCTFontURLAttribute)); + if (pFontURL) + { + bool bSkipFont = false; + CFStringRef pFontPath = CFURLCopyFileSystemPath(pFontURL, kCFURLPOSIXPathStyle); + if (pFontPath) + { + bSkipFont = CFStringHasPrefix(pFontPath, CFSTR("/System/Library/PrivateFrameworks/FontServices.framework/Resources/Reserved/")); + CFRelease(pFontPath); + } + CFRelease(pFontURL); + + if (bSkipFont) + return; + } + bool bFontEnabled; FontAttributes rDFA = DevFontFromCTFontDescriptor( pFD, &bFontEnabled );