Assume, auxiliary fonts are switched on.
1) In a sequence of characters, if one of the characters cannot be shown with the main font and the system switches to a lower-quality auxiliary font, the subsequent characters are also shown with the lower quality font.
2) Characters of higher planes (>0xFFF) are only shown for the main font, not for auxiliary fonts.
I found, that both errors are in Chunk.layoutGlyphs. There is a concept "Draw as much as you can [with current font]", responsible for Bug 1). A char array is responsible for bug 2). One should assign the correct font character by character (perhaps with this BreakIterator class...)
To reproduce 1)
I tested with normal main font (Monospaced) and preferred fonts: Code2000, Code2001 (code2000.sourceforge.net) and unifont (unifoundry.com/unifont.html).
I charactermap, private use area, various letters from code 2000 can be seen, the missing characters are marked with a unifont symbol.
If I insert only one of these symbols, all subsequent characters inserted from Private use area show this same symbol.
To reproduce 2)
If I insert e.g. a character from block "Phaistos Disc" \uD800 \uDD00, I just see two placeholders. If I switch the main font to Code2001, I can see the symbol, a little man.
Log in to post a comment.