This does several things: mScriptItem->a.s.fDisplayZWG = PR_TRUE; this makes ScriptShape give us wgDefault for glyphs that are missing in all cases I've been able to test. MS person told me to do this. This also makes us use ScriptGetCMap to check for missing glyphs rather than relying on ScriptShape to do it. We can't use ScriptGetCMap for things with surrogate pairs so we still rely on ScriptShape for that. I've tested this quite a bit and haven't found any problems.
Comment on attachment 260398 [details] [diff] [review] fix looks good to me.
Attachment #260398 - Flags: review? → review+
Status: NEW → RESOLVED
Last Resolved: 11 years ago
Resolution: --- → FIXED
This has caused visible glyphs to be displayed for ZWJ, ZWNJ and friends in some cases (e.g. attachment 212748 [details]). The last paragraph of http://blogs.msdn.com/michkap/archive/2007/03/30/1997518.aspx says "Note that this flag can have some unintended consequences if one is doing the actual rendering, especially if a font actually contains representational glyphs (which is usually not going to be the case). But for the requested purpose (checking for strings that can or cannot be represented by the font) it can actually do quite well...." Maybe we need to make a second call to ScriptShape without the flag after we find the font?
You need to log in before you can comment on or make changes to this bug.