Before, the words "Fumi" and "K" were being merged. Letters "F" and "K" are using the font BookmanOldStyle. Letters "umi" are using ArialMT. Because of this font check, the words are no longer being merged, making the width of the i different.
Yes, it is possible for one word to have fonts with different WModes. Still looking into it, but I suppose it will need to start a new word on WMode changes.
Carlos: I don't know why you do not see a difference. Without this patch, selecting text in the minimal example changes the text to "ABC". With this patch, it stays "BCD".
The difference in character width is because of this change:
@@ -863,7 +839,7 @@ void TextLine: :coalesce( UnicodeMap *uMap) { >font[word0- >len - 1] == word1->font[0] && >underlined == word1->underlined && word0-> fontSize - word1->fontSize) < ntSizeDelta * words->fontSize &&
word0->spaceAfter = gTrue;
word0 = word1;
word1 = word1->next;
- } else if (word0->font == word1->font &&
+ } else if (word0-
word0-
fabs(
maxWordFo
Before, the words "Fumi" and "K" were being merged. Letters "F" and "K" are using the font BookmanOldStyle. Letters "umi" are using ArialMT. Because of this font check, the words are no longer being merged, making the width of the i different.
Yes, it is possible for one word to have fonts with different WModes. Still looking into it, but I suppose it will need to start a new word on WMode changes.
Carlos: I don't know why you do not see a difference. Without this patch, selecting text in the minimal example changes the text to "ABC". With this patch, it stays "BCD".