office-gobmx/include
Miklos Vajna ef1870810e tdf#162280 vcl: consider font family type for glyph caching
Open tdf105820-1.doc from crashtesting in a dbgutil build, save as PDF,
we assert in checkGlyphsEqual().

This is a problem since commit 6dfac38bac
(tdf#162072 vcl, fontconfig: consider font-family-generic for
substitute, 2024-07-18), because now the font name no longer determines
the fallback name alone, so 2 paragraphs may share the cached vcl-level
text layout, even if the underlying fallback font is different. One
would naively expect that in the SalLayoutGlyphsCache::CachedGlyphsKey
ctor, the fontMetric.GetFamilyType() already has the correct family
type, but it turns out that is always the default, and only
outputDevice->GetFont().GetFamilyType() has the up to date setting:

debug:12372:12372: SalLayoutGlyphsCache ctor: output device font family name is 'Verdana', output device font family type is roman, font metric family name is 'Verdana', font metric family type is 'swiss'
debug:12372:12372: SalLayoutGlyphsCache ctor: output device font family name is 'Verdana', output device font family type is swiss, font metric family name is 'Verdana', font metric family type is 'swiss'

Fix the problem by explicitly including the output device font family
type in the cache key.

Note that this only happens in practice if the same font is used in the
document with different family types, which is probably never the
intention of the user. E.g. Verdana is meant to be sans, a serif Verdana
is some weird corner-case.

Change-Id: Id6cc60809a35a3dcdc6e83122a559ddfbe5d5d0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171280
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-07-31 16:56:26 +02:00
..
android
animations
apple_remote
avmedia
basegfx CairoSDPR: Direct support for RGBA Gradients (I) 2024-07-16 13:10:10 +02:00
basic
bridges/emscriptencxxabi
canvas tdf#43157 Use SAL_WARN instead of OSL_FAIL 2024-07-20 12:32:12 +02:00
codemaker
com/sun/star/uno
comphelper lok: join Webdav Ticker thread. 2024-07-26 13:37:26 +02:00
connectivity Refactor ODBC functions code for clarity 2024-07-26 23:20:12 +02:00
cppcanvas
cppu
cppuhelper
cppunittester
dbaccess
desktop
docmodel
drawinglayer CairoSDPR: Support direct transparency for gradients 2024-07-26 10:56:33 +02:00
editeng tdf#161846 use unordered_map in SfxItemPropertyMap 2024-07-29 15:10:19 +02:00
embeddedobj
filter
formula Related: tdf#159343 Handle TableRef separator in brackets for Function Wizard 2024-07-27 00:19:57 +02:00
fpicker tdf#159040: add sign with default certificate to save dialog 2024-07-24 07:08:46 +02:00
framework
helpcompiler
i18nlangtag
i18npool
i18nutil
jvmaccess
jvmfwk
LibreOfficeKit lok: join Webdav Ticker thread. 2024-07-26 13:37:26 +02:00
linguistic
o3tl Use IsRunningUnitTest / IsRunningUITest consistently 2024-07-17 19:15:31 +02:00
oox
opencl
osl Remove now unneeded osl/diagnose.h 2024-07-20 10:20:31 +02:00
package
registry
rtl Reintroduce OUString::replaceAt taking an OUString to LIBO_INTERNAL_ONLY 2024-07-31 12:15:38 +02:00
sal Restrict SAL_RET_MAYBENULL to LIBO_INTERNAL_ONLY 2024-07-17 21:39:22 +02:00
salhelper
sax
sfx2 tdf#157233 - A11y: Add global Accessibility check options for 2024-07-25 17:44:22 +02:00
sot
static/unoembindhelpers
store
svl tdf#161846 use more GetItemSurrogatesForItem 2024-07-31 12:41:06 +02:00
svtools fix enabled-mergelibs-more build 2024-07-26 19:33:12 +02:00
svx tdf#161846 use more GetItemSurrogatesForItem 2024-07-31 12:41:06 +02:00
systools Fix typo 2024-07-18 19:18:30 +02:00
test sw: get rid of parseDump 2024-07-30 13:49:32 +02:00
toolkit
tools make date/time single-arg constructors explicit 2024-07-18 10:27:41 +02:00
typelib
ucbhelper cid#1608362 Double unlock 2024-07-22 09:35:00 +02:00
uno
unoidl
unotest
unotools
vbahelper
vcl tdf#162280 vcl: consider font family type for glyph caching 2024-07-31 16:56:26 +02:00
xmloff
xmlreader
xmlscript
default.rc
IwyuFilter_include.yaml
postmac.h
postwin.h
premac.h
prewin.h
version.hrc