Community
Participate
Working Groups
Cursor level is broken in the following cases: 1. doBackspace(), doDelete(). Expected behavior: cursor level is set to the level of the deleted character. Actual behavior: cursor level is set to the level of the preceding character. 2. doLineStart(), doLineEnd(). Expected: cursor level is derived from the paragraph level. Actual: cursor level is derived from the level of the first/last character. Suggested solution: cache cursor level in the above methods.
The first case is regression since M7 (introduced by M8, when StyledText changed to work with TextLayout). The second case is enhancement.
I expect this to be wrong, I threw away a lot of code in this area. I tried to fix it before releasing the new code but I didn't have time to write the code that works for all the cases, the code I wrote would fails for latin numbers surrunded by RTL text.
Created attachment 11234 [details] Patch Hi Lina, could apply this patch into StyledText and verify if it fixes case 1?
Created attachment 11286 [details] The whole file (StyledText.java) just in case you have problem with the patch
Hi Felipe, Yes, case 1 seems to be fixed :)
Steve, this a regression in StyledText, after deleting a character (in the boundary direction) the caret is placed in the wrong position. The fix is not hard or dangerous and even if it's wrong it should only affect bidi. Do you approve releasing the code for RC2 ? (The code attached here is not in it's final form)
Yes.
Fixed > 20040604 Please, test it using next monday integration build (from the afternoon) or late. Ps.: I'm open another pr about lineUp/lineDown.