Merge pull request #248 from elig0n/diff_pgup_ctrlu

Differentiate half-page Ctrl+U/D and pageful PageDN/UP movement keys
This commit is contained in:
Mischievous Meerkat 2019-04-21 02:10:11 +05:30 committed by GitHub
commit c71056c03d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View File

@ -3064,9 +3064,17 @@ nochange:
break;
case SEL_PGDN:
if (cur < ndents - 1)
cur += MIN((xlines - 4) / 2, ndents - 1 - cur);
cur += MIN((xlines - 4), ndents - 1 - cur);
break;
case SEL_PGUP:
if (cur > 0)
cur -= MIN((xlines - 4), cur);
break;
case SEL_CTRL_D:
if (cur < ndents - 1)
cur += MIN((xlines - 4) / 2, ndents - 1 - cur);
break;
case SEL_CTRL_U:
if (cur > 0)
cur -= MIN((xlines - 4) / 2, cur);
break;

View File

@ -43,6 +43,8 @@ enum action {
SEL_PREV,
SEL_PGDN,
SEL_PGUP,
SEL_CTRL_D,
SEL_CTRL_U,
SEL_HOME,
SEL_END,
SEL_CDHOME,
@ -126,10 +128,12 @@ static struct key bindings[] = {
{ KEY_UP, SEL_PREV },
/* Page down */
{ KEY_NPAGE, SEL_PGDN },
{ CONTROL('D'), SEL_PGDN },
/* Page up */
{ KEY_PPAGE, SEL_PGUP },
{ CONTROL('U'), SEL_PGUP },
/* Ctrl+D */
{ CONTROL('D'), SEL_CTRL_D },
/* Ctrl+U */
{ CONTROL('U'), SEL_CTRL_U },
/* First entry */
{ KEY_HOME, SEL_HOME },
{ 'g', SEL_HOME },