diff options
author | Caolán McNamara <caolanm@redhat.com> | 2013-08-28 20:22:26 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-08-28 20:30:33 +0100 |
commit | b129867306ce918f4f8fbf9ec5f7dce86e52c9d2 (patch) | |
tree | 288bbf49dc2d2a3d0b0909b7bd9627bd4a267b92 | |
parent | 6a4dd39379a8521a3c870d46b9702e0597a3333f (diff) |
Resolves: fdo#68192 always recode from trad symbol to apple symbol
Even if the symbol font bit isn't set, the oox import route lacks the ability
to state that the bullet font is a font of symbol encoding. If the font is not
available on the system we go into fallback logic to state that famous symbol
fonts are in symbol encoding. But there is a symbol font on mac so its not
unknown and that doesn't happen. And the mac symbol font is not actually in
symbol encoding (seeing as it's all rearranged into the correct unicode
positions) so the recode logic is skipped in this special case to map the
microsoft/adobe private use area chars to the modern code points where they
were moved in the apple font.
I guess one alternative possible solution is to lookup all the fonts used in a
openxml doc using the fonttable stream where the charset info is available. But
seeing as it should only affect one particular font lets just move the encoder
test outside the issymbol block.
Change-Id: Ic5bd3ec15c8d8d99e2cab0fb67cc4bc33081c756
-rw-r--r-- | vcl/source/gdi/outdev3.cxx | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx index 8c7519162262..084d62d8d6c1 100644 --- a/vcl/source/gdi/outdev3.cxx +++ b/vcl/source/gdi/outdev3.cxx @@ -2290,18 +2290,19 @@ ImplFontEntry* ImplFontCache::GetFontEntry( ImplDevFontList* pFontList, { if( aFontSelData.maTargetName != aFontSelData.maSearchName ) pEntry->mpConversion = ConvertChar::GetRecodeData( aFontSelData.maTargetName, aFontSelData.maSearchName ); + } + #ifdef MACOSX - //It might be better to dig out the font version of the target font - //to see if it's a modern re-coded apple symbol font in case that - //font shows up on a different platform - if (!pEntry->mpConversion && - aFontSelData.maTargetName.equalsIgnoreAsciiCase("symbol") && - aFontSelData.maSearchName.equalsIgnoreAsciiCase("symbol")) - { - pEntry->mpConversion = ConvertChar::GetRecodeData( OUString("Symbol"), OUString("AppleSymbol") ); - } -#endif + //It might be better to dig out the font version of the target font + //to see if it's a modern re-coded apple symbol font in case that + //font shows up on a different platform + if (!pEntry->mpConversion && + aFontSelData.maTargetName.equalsIgnoreAsciiCase("symbol") && + aFontSelData.maSearchName.equalsIgnoreAsciiCase("symbol")) + { + pEntry->mpConversion = ConvertChar::GetRecodeData( OUString("Symbol"), OUString("AppleSymbol") ); } +#endif // add the new entry to the cache maFontInstanceList[ aFontSelData ] = pEntry; |