From: Bernard M. <bm...@fr...> - 2009-12-28 17:52:02
|
Hello, I've just tested, one after all, programs of main graphics libraries families to see if it improved since the last time I did so. And it did. However something that stroke me is the lack of consistency in the way cursor and delete/backspace keys behave, especially when considering consonant clusters. Qt and basic KDE applications treat clusters as single graphemes when moving cursor, they use <backspace> to delete one Unicode character and <delete> to delete the entire cluster. In Kate, <delete> deletes only one Unicode character, even in clusters, resulting in isolated viramas or matras. In KWord, both <backspace> and <delete> delete the entire cluster. OpenOffice.org and Firefox treat clusters as a list of {consonant,virama} couples with an optional matra for the last one, sometimes resulting in very disturbing cursor positioning (in the middle of a character), or in giving the impression that you have selected a whole cluster while in reality you only have a part of it in the copy buffer (you can also type text in the middle of a cluster in a totally unintended way), or you can even have the cursor moving to the right when pressing <left>. A real mess! So my question is : is there any more or less official standard about cursor and delete/backspace behavior ? Unicode has the http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries page which suggests something very close to what Qt does, but it's not written as a standard you're supposed to follow but more as mere suggestions and examples. It seems to me that Qt, at least for scripts which have complex consonants clusters (I agree Devanagari and Tamil may deserve different treatments), is the only one behaving the right way, and OpenOffice.org and Firefox are the most broken. But it would be nice to know what is supposed to be "the right way". Regards, -- Bernard Massot |