To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=89002 Issue #|89002 Summary|Symbol font problems Component|gsl Version|DEV300m11 Platform|All URL| OS/Version|Linux Status|NEW Status whiteboard| Keywords| Resolution| Issue type|PATCH Priority|P3 Subcomponent|code Assigned to|hdu Reported by|cmc
------- Additional comments from [EMAIL PROTECTED] Sun May 4 17:11:28 +0000 2008 ------- So attached is a sample .odt which should cause all sort of problems when loaded on a system without wingdings installed. There are two problems, the first affects 2.3.X & 2.4.0 and the other just 2.4.0 I think. Firstly is the font cache. If we succeed in using the special symbol "recode" feature to convert Wingdings code points into OpenSymbol code points when we have a missing Wingdings font, then every *other* time we use OpenSymbol we fetch this "recoding" opensymbol from the cache, this causes the line of "I am a 'Q' in OpenSymbol, I don't exist" to actually get the Q recoded to a different existing location in OpenSymbol, something that won't happen if Wingdings is not used earlier. We need to ensure that an entry for a symbol font which does a recoding conversion is considered different to the same font which does a *different* recoding. The top part of the attached 1st patch does this. cmc->flr: i.e. IMO the 2.3.0 behaviour of showing an airplane for this second line is actually wrong, it should either be a [] (not found glyph), or a real 'Q' The second problem is on finding a font (not glyph) substitute for Wingdings in >= 2.4.0, this actually works beautifully except in writer. In sw/source/core/txtnode/fntcache.cxx SwFntObj::CreateScrFont if we are missing some information about a font we call "pOut->GetFontMetric()" with a *symbol* font called WingDings, as a symbol font we do not go near fontconfig and we got the OpenSymbol (magic recoding) built-in fallback. All perfect. Now though writer overwrites some info with the returned data of the real underlying font and does "aMet = pPrt->GetFontMetric()". The problem here is that the encoding has been copied from the real OpenSymbol metrics over the WingDings metrics and the "symbol" encoding has been lost because OpenSymbol is a "unicode" encoding not a symbol one. So now we're looking up a *non-symbol* font called WingDings and we *do* ask fontconfig for that and get back a non-symbol font not OpenSymbol and we get a 'Q' for I am a 'Q' in windings, recode me to OpenSymbol Fixing this could probably be done a few different ways, but one way is to always claim that [open|star]symbol is a symbol font (second part of the 1st patch), another would be in writer to only overwrite the missing properties (2nd alternative patch). --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
