Akihiro Sagawa wrote:
In my opinion, why don't we test the following condition for fixed_pitch_full? fixed_pitch_full = avg_advance > 0 && (base_advance + 63) >> 6 >= pFT_MulFix(MulDiv(incoming_font->ntmAvgWidth, x, y), em_scale); The x and y are heuristic ratio. I think they will be 1.5~1.8.
Because base_advance can be based on linked font, i.e. another font replaced by get_glyph_index_linked(), the glyph might be a proportional typeface. In that case, "(base_advance + 63) >> 6 != avg_advance" is very loose restriction. A narrow character may be treated as a Full-width character in that case.
Regards, Akihiro Sagawa
Yes. It's absolutely correct.
I thought about this possibility, but I wanted to leave it as a different issue. So I wrote 'slightly logic change'. Of course, it is my fault that I did not make any further comments.
To deal with this, I need to create a real test case and investigate the behavior of the native Windows.
I have a variety of other issues besides this. In the process of resolving an issue, another issue is revealed. So when I deal with them together, patch issues of various topics are mixed up. Then Huw's patch review becomes difficult, and my patch process will also take a long time.
This patch is still lacking, but it is slightly better than it is now.
Thank you.