1
0
Fork 0
forked from len0rd/rockbox

Fixed the Player keyboard cursor positioning, bug #983404

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4861 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2004-07-09 13:11:16 +00:00
parent 7c931a12ec
commit 6ed333e3d7

View file

@ -104,13 +104,30 @@ int kbd_input(char* text, int buflen)
while (!done) {
int i, p;
int len = strlen(text);
int scrpos;
int dir;
scrpos = cursor_pos - left_pos;
dir = cursor_pos - old_cursor_pos;
/* Keep the cursor on screen, with a 2 character scroll margin */
if(dir < 0) {
if(scrpos < 2) {
left_pos = cursor_pos - 2;
if(left_pos < 0)
left_pos = 0;
}
}
if(dir > 0) {
if(scrpos > 7) {
left_pos = cursor_pos - 9;
if(left_pos < 0)
left_pos = 0;
if(left_pos > len - 9)
left_pos = len - 9;
}
}
/* draw input */
if (old_cursor_pos<cursor_pos && 7<(cursor_pos-left_pos) && cursor_pos<(len-1))
left_pos++;
else
if (cursor_pos<old_cursor_pos && (cursor_pos-left_pos)<2 && 0<left_pos)
left_pos--;
p=0;
i = left_pos;
while (p<10 && text[i]) {