Some better page up/down fixes, added keypad_on() call for now

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@435 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
Chris Allegretta 2001-01-03 15:09:27 +00:00
parent f4b9601c1b
commit 425a266a92
1 changed files with 10 additions and 8 deletions

18
files.c
View File

@ -1205,6 +1205,7 @@ char *do_browser(char *inpath)
titlebar(path); titlebar(path);
bottombars(browser_list, BROWSER_LIST_LEN); bottombars(browser_list, BROWSER_LIST_LEN);
keypad_on(TRUE);
curs_set(0); curs_set(0);
wmove(edit, 0, 0); wmove(edit, 0, 0);
i = 0; i = 0;
@ -1240,28 +1241,29 @@ char *do_browser(char *inpath)
case NANO_PREVPAGE_KEY: case NANO_PREVPAGE_KEY:
case KEY_PPAGE: case KEY_PPAGE:
if ((selected / width) % editwinrows == 0) { if ((selected / width) % editwinrows == 0) {
if (selected - editwinrows >= 0) if (selected - (editwinrows * width) >= 0)
selected -= editwinrows; selected -= editwinrows * width;
else else
selected = 0; selected = 0;
} }
else if (selected - (editwinrows + else if (selected - (editwinrows +
(selected / width) % editwinrows) >= 0) (selected / width) % editwinrows) * width >= 0)
selected -= editwinrows + (selected / width) % editwinrows; selected -= (editwinrows + (selected / width) %
editwinrows) * width;
else else
selected = 0; selected = 0;
break; break;
case NANO_NEXTPAGE_KEY: case NANO_NEXTPAGE_KEY:
case KEY_NPAGE: case KEY_NPAGE:
if ((selected / width) % editwinrows == 0) { if ((selected / width) % editwinrows == 0) {
if (selected + editwinrows <= numents - 1) if (selected + (editwinrows * width) <= numents - 1)
selected += editwinrows; selected += editwinrows * width;
else else
selected = numents - 1; selected = numents - 1;
} }
else if (selected + (editwinrows - else if (selected + (editwinrows -
(selected / width) % editwinrows) <= numents - 1) (selected / width) % editwinrows) * width <= numents - 1)
selected += editwinrows - (selected / width) % editwinrows; selected += (editwinrows - (selected / width) % editwinrows) * width;
else else
selected = numents - 1; selected = numents - 1;
break; break;