Last Updated: 31 Oct 2018 07:53 by ADMIN
Created on: 23 Oct 2014 07:27
Category: RichTextBox
Type: Feature Request
RichTextBox: Add support for complex script languages with combining characters (Thai, Telugu, Devanagari)
In some complex script languages, like Telugu and Thai language, some characters are grouped (e.g. consonants + vowels) in new grapheme. 

For example, type 'p' in Telugu - 'జ', followed by 'ో' - they are combined in new grapheme - 'జో', or paste the following Thai grapheme: ชื

UI correctly visualizes this, but:
- Text measuring assumes that the grapheme width is equal to the sum of the widths of its parts (characters), which is not correct. Selection and caret position are scrambled because of this.
- There are document positions between  the grapheme parts (characters), but shouldn't.
- When the caret is before the grapheme, deleting with "Delete" key deletes the grapheme in multiple steps (character by character), but should delete it in single step. Deleting with "Backspace" works correctly.
- There are some unsupported combinations in some languages. For example in Thai, typing 'z' then 'y' will produce grapheme, but typing 'w' then 'y' will not produce grapheme, and the 'y' should be ignored.