GNOME Bugzilla – Bug 100809
Backspace behaviour in gtk text controls for Indic
Last modified: 2011-02-04 16:12:26 UTC
Right now when a cluster is formed in Indic text, a back space deletes the whole cluster. eg KA VIRAMA RA VS_I -> KRI cluster now doing a backspace deletes the whole KRI cluster. This is frustrating for a new & old users, as in Indic text there is a high percentage of clusters formed in text, small typos mean whole cluster has to be deleted, eg. if a wrong vowel sign is typed, whole cluster gets deleted just to delete the vowel sign, number of characters forming a cluster ususally ranges from 2-10, If backspace behavior could be modified to one where in previous typed character is deleted, it would be much better & easy on the user. Windows 2K & XP have such behaviour. Behaviour of 'delete' is ok, since we dont expect cursor to be positioned in middle of already formed cluster. I donno if this is the proper place for this bug ( should it be in gdk / pango ?) Karunakar
Probably has a Pango component, I'm not completely sure at this point... basically the problem is that clusters of combining characters need to behave differently for different scripts, so there need to be some API for how much to delete when you hit the delete key that is smart.
Should check whether the new Unicode boundary algorithm (TR29 I think) contains some way to get this right.
This is also applicable to Korean Hangul (in U+1100 Jamos) (see bug 95708) when 'Xkb' is used instead of a dedicated IME or gtk input module. I guess this is also the case for most other scripts (Indic, Thai, Lao, Burmese...) where clusters are heavily used. I'm not sure of Latin/Cyrillic/Greek cases, though. (well, it seems like Pango does not yet support diacritic combining marks for Latin/Greek/Cyrillic...) As the reporter wrote, it's frustrating to have to type from the beginning after a single mistake. I also agree that UTR #29 (esp. grapheme boundary) is relevant here. I gave some feedback to the author of UTR #29 about the very this issue. What we may need is 'script-based' default with an option to override or two different kinds of 'hackspace' (say, 'backspace' vs 'ctrl-backspace'?)... Although it's not as critical as 'backspace', some people may want the cursor to move by 'code point' instead of by 'cluster'.
*** This bug has been marked as a duplicate of 114483 ***
*** Bug 118725 has been marked as a duplicate of this bug. ***