-
Michael Stahl yazdı
The font cache in VCL returns different fonts for identical parameters, which causes layout differences in Writer. first we search the font with language 1054: debug: XXX 0x2103950 add to maFontNameList: TH SarabunPSK->waree p maFontNameList $9 = boost::unordered_map with 1 elements = { ["TH SarabunPSK"] = "waree" debug: XXX 0x2103950 found in maFontNameList: TH SarabunPSK->waree in this very same invocation the "waree" is then rerouted to Deja Vu (which can only be because it was called with language 1033): debug: XXX 0x2103950 add to maFontNameList: TH SarabunPSK->dejavusans p maFontNameList $11 = boost::unordered_map with 1 elements = { ["TH SarabunPSK"] = "dejavusans" } debug: XXX 0x2103950 found in maFontNameList: TH SarabunPSK->dejavusans - the selection of different fonts happens in FcPreMatchSubstititution::FindFontSubstitute. - we never get a direct cache hit from maFontInstanceList because there are some differences like WIDTH_DONTKNOW, and the maSearchName - the first time a font is searched, it ends up in maFontInstanceList - the second time a font is searched, it may end up in maFontNameList, which maps _only_ based on the name (appears to be an invalid optimization) - once we have TH SarabunPSK->dejavusans in maFontNameList we can never select the other one because apparently dejavusans covers all languages Change-Id: Ibd73de88d8fc3b6e1319eb34c261e55ea217a988 (cherry picked from commit bb51791a)
835cae7e