diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2016-12-15 09:59:59 +0200 |
---|---|---|
committer | Khaled Hosny <khaledhosny@eglug.org> | 2016-12-15 12:29:53 +0000 |
commit | fcbbd6089da7e60bf616041517a2aee3017ae448 (patch) | |
tree | 96ddfc16394b93acc503d7fc66ab430d7481d410 | |
parent | 39e6f271d1b0e91456d2dc5f14fad7191ce6bb13 (diff) |
tdf#103514: Try harder to ignore non-SFNT fonts
It seems that Script (and probably other bitmap fonts) have zero
nFontType, so instead if checking for RASTER_FONTTYPE, check for not
TRUTYPE_FONTTYPE (which seems to cover both TrueType and CFF-based SFNT
fonts).
Reviewed-on: https://gerrit.libreoffice.org/32031
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
(cherry picked from commit ef4b9032de55e6b1b182e4ead1bbe6e590df296e)
Change-Id: Ie39ed99b219b756885b13b3ecbf3616556a277db
Reviewed-on: https://gerrit.libreoffice.org/32040
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
Tested-by: Khaled Hosny <khaledhosny@eglug.org>
-rw-r--r-- | vcl/win/gdi/salfont.cxx | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/vcl/win/gdi/salfont.cxx b/vcl/win/gdi/salfont.cxx index d2d964d47f4b..10ec674c9f07 100644 --- a/vcl/win/gdi/salfont.cxx +++ b/vcl/win/gdi/salfont.cxx @@ -1370,19 +1370,15 @@ int CALLBACK SalEnumFontsProcExW( const LOGFONTW* lpelfe, } else { + // Only SFNT fonts are supported, ignore anything else. + if (SalLayout::UseCommonLayout() || OpenGLWrapper::isVCLOpenGLEnabled()) + if (!(nFontType & TRUETYPE_FONTTYPE)) + return 1; + // Ignore non-device font on printer. if (pInfo->mbPrinter && !(nFontType & DEVICE_FONTTYPE)) return 1; - // Ignore non-scalable fonts. - if (nFontType & RASTER_FONTTYPE) - return 1; - - // Ignore font formats not supported by CommonSalLayout. - if (SalLayout::UseCommonLayout()) - if ((pMetric->ntmTm.ntmFlags & NTM_TYPE1) || (pMetric->ntmTm.ntmFlags & NTM_MULTIPLEMASTER)) - return 1; - WinFontFace* pData = ImplLogMetricToDevFontDataW( pLogFont, &(pMetric->ntmTm), nFontType ); pData->SetFontId( sal_IntPtr( pInfo->mnFontCount++ ) ); |