Comment 22 for bug 1425387

Revision history for this message
poju (popjussi) wrote :

This patch included the 2nd patch, and also try to solve some problems that the previous patch has not addressed.
The new problem was that once the 2nd patch bypassed the old loop that reset the "is_cluster_start"
it made the old flow builder to also use the old assumption that was indicated as a hack to survive ligature.
I create a new case only to apply to Thai by not to change the behavior of the cluster and treat the cluster
like a single and unbreakable glyph. This way the _flow._characters and _glyphs will be properly constructed
for Thai and won't have trouble like putting the text on path like my second patch has caused.

In this patch I mainly try to scope the problem into a block and didn't try hard to integrate itself into the
current logic. eg. The following glyphs in the cluster were generated in its own loop once Thai was detected,
along with the new characters.

Additional works to be decided by some Thai in future could be started around in this Thai block to avoid Latin assumptions
like to break the a particular Thai cluster that involve U+0E33, since it isn't a true ligature if you look at it.
Breaking the cluster would help with adding the extra space between characters when you need that.
So the layout won't avoid adding some spaces before U+0E33

Although you can avoid that by using Nikhahit (E+0E4D) + Sara AA (E+0E45) instead of U+0E33
to get the non-ligature effects.