+++ This bug was initially created as a clone of Bug #129212 +++ Description of problem: While inputting indic languages in the evolution mail composer, composite glyphs and ligatures are considered as independent glyphs during cursor navigation. For example, while moving the cursor left to right on a single glyph composed from 4 unicode characters, the cursor has to be moved 4 times, instead of once. Similarly, deletion happens one unicode character at a time, instead of deleting the full glyph. This behaviour is inconsistent with the rest of the gnome desktop (compare to gedit). Version-Release number of selected component (if applicable): 3.1.16-3 How reproducible: every time Steps to Reproduce: 1. Start evolution, compose new message. 2. Open the test file attached to this bug, in gedit, copy & paste content into the composer. 3. Navigate LTR on the composite character in gedit and in composer. Actual results: A single right arrow keypress is sufficient in gedit, whereas it takes 5 keypresses to navigate this string in composer. Expected results: it should take a single keypress to navigate this glyph Additional info: Deleting this composite glyph takes 5 delete keypresses, whereas a single delete keypress works in gedit.
Tested with evolution-2.2.2-3 and gtkhtml3-3.6.2-1. The cursoring position is ok, ie, takes only one keypress to move acorss one character. However, for delete key, it is not working properly. Instead of deleting the compose character in one keypress, it removes the characters which makes up the composed character one at a time.
Re comment #2: was this with an unpatched gtkhtml3, or did you apply the patch referred to in comment #1?
Re comment #3: it was tested with gtkhtml3 from latest dist-fc4 without the patch from comment #1.
upstream has different implementation in the latest version of gtkhtml3, which hasn't supported backspace_deletes_character attribute. FYI.
Tested evolution-2.2.2-5 with gtkhtml3-3.6.2-1 from dist FC4, cursoring for CJKI is good. However, removing a character using the Delete key, it is still not possible for bn_IN, gu_IN, hi_IN, pa_IN and ta_IN. Please find attached a text file with all 9 locales characters.
Created attachment 114764 [details] text file containing characters from all 9 CJKI locales
So am I right in thinking: (i) that the patch in attachment #110708 [details] is incompatible with the upstream gtkhtml3 in FC4? (ii) that the current behaviour in the FC4 package is that cursor movement works, and it is the "delete" behaviour left to be fixed? I'm running out of time here; can this be moved from the FC4 blocker list to be fixed in an update? Or do you have a patch for this?
Yes and Yes - it looks like the behavior is reversed. so current deletion isn't the right way anyway because it *just* works for backspace, but not delete. it needs to be modified according to backspace_deletes_character attribute. I'm now working on this. but I yet have no patch to submit now. and it's too late to include for FC4. so it should be moved to FC4Update IMO.
Moving from FC4Blocker to FC4Update
Created attachment 114909 [details] proposed patch for gtkhtml-3.6.2 backported a patch and modified and fix minor issues on that.
Created attachment 114965 [details] proposed patch for gtkhtml-3.6.2 previous patch was actually old one. attaching the latest
Tested with gtkhtml3 test package containing the patch from Comment #12 and evolution-2.2.2-7, confirm the bug has been fixed.
Navigation is ok, but Deletion is not yet ok Tested Version: evolution-data-server-1.7.1-2 evolution-webcal-2.4.1-3.2 evolution-2.7.1-1 evolution-data-server-devel-1.7.1-2
IMO, backspace should delete one char at a time, but delete key should delete full unicode in one go. Aalam, delete key seems to be working fine. Can you please recheck? Thanks, Mayank
Test Result : PASS, Backspace is deleting one character at a time and Delete is deleting one glyph at a time. Both Backspace and Delete working properly. Nevigation and Deletion is okay. Tested with Packages and versions : evolution-2.7.3-2 evolution-data-server-1.7.3-2 evolution-sharp-0.11.1-1 evolution-webcal-2.7.1-4 gtkhtml2-2.6.3-1.2.1 gtkhtml3-3.11.2-1 Tested on O.S. : Fedora Core Release 5.89 (Rawhide) i386.