The backspace_deletes_char changes are important for Indic, and we should backport them to our GTK+-2.4 package. (What they do is that if you have a syllable,say: <cons> <virama> <cons> <vowel> with the cursor after hit, and you hit the <Backspace> key, only the vowel is deleted, not the entire syllable.)
The backport is in gtk2-2.4.9-7.
This 'feature' happens to many other scripts as well. Because of this, our distro may not able to pass openi18n certification any more. Please see "Assertion 2: Verify this utility can delete per character in the text encoded in UTF-8" at: http://www.openi18n.org/subgroups/testsuites/1.3/interactive/text-editor-tests/general-text-editor-test-scenario.html
1) If you can find scripts where the behavior is wrong for *users* of the scripts, then we can modify the behavior for those scripts. 2) If it's just standards compliance, then if you *first* file a defect report against openi18n, then possibly we can add a config flag or environment variable to make Pango produce the "desired" behavior. What that openi18n test about though is testing that delete isn't deleting bytes; the fact that GTK+ delete is now invariant of normalization form is certainly more correct than otherwise.
For example, I would say European and Korean languages are not favor with this feature. Actually AFAIS, only scripts like Indic, Thai etc may like this implementation. Can we do the opposite? We can disable by default, but enable the script we found that required that feature?
I don't think you've tried it for European languages... The code in Pango changes behavior script by script; currently it has: #define BACKSPACE_DELETES_CHARACTER(wc) (!LATIN (wc) && !CYRILLIC (wc) && !GREEK (wc)) For Korean, I suspect if we had sufficiently good input method integration, user's would prefer delete to work Jamo by Jamo, but that probably isn't the case now. (That is, without this change, if I type H-A-N <delete> then just the N disappears. But if I move after a syllable 'han' and type <delete> then the whole syllable disappears. With this change, the two cases are consistent, except that when the N is deleted, I'm not in compose mode, so if I type N again it starts a new syllable. What should happen is that deleting the N should put me back into compose mode. I'm not really sure how to get that working with the current framework.) Can you file a new, separate bug against Pango to modify the the backspace_deletes_character assignment to skip Korean? I don't want to retitle and reassign this bug,that's just too confusing.