Red Hat Bugzilla – Bug 198759
[PATCH] wrong cursor movement between lines
Last modified: 2007-11-30 17:11:37 EST
Description of problem:
When press Up/Down key to move the cursor up/down, the cursor should keeps the
current column if the above/below line has the same length of text or more. but
the cursor goes to the top of line or the end of line.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1.move the cursor up/down on the textarea.
the cursor is moved to the top of line or the end of line.
should be the same column if the moved line has same length or more.
this issue is gone if I run firefox with MOZ_DISABLE_PANGO=1.
I can reproduce the bug as well.
Created attachment 135207 [details]
after some debugging, this issue was introduced by the misuse of the return
value from pango_layout_xy_to_index. after applying this patch, it works fine.
The patch has a couple of problems.
Just removing that "if (found)" block completely fixes the problem.
You mean "if (!found)"? it just works without even "if (!found)" block though,
I'm not quite sure what problems it has.
The problems the old patch had were that it got the direction for the context,
but it should have gotten the context for the line as they could be different.
Also, your getting the direction didn't actually effect the program at all since
you did the same thing for both the if (dir == PANGO_DIRECTION_LTR) part and the
But all that said, there was no adjustment needed. Pango does the right thing
with the positioning, and the return value is more informative than anything in
this specific case.
Created attachment 135626 [details]
Better patch. Thanks for tracking the main issue down, tagoh!
I see. you're right. getting the direction didn't effect anything indeed. and
your patch is working fine. Thanks for the clarification.
Fixed in latest versions in rawhide.