From 69d80316cf6c9e5598bf8f8047f38c37abab72f2 Mon Sep 17 00:00:00 2001 From: hpa Date: Tue, 4 Jan 2005 07:15:20 +0000 Subject: [PATCH] More navigation keys --- com32/libutil/get_key.c | 4 ++++ com32/modules/menu.c | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/com32/libutil/get_key.c b/com32/libutil/get_key.c index 5cc147f..b7498a1 100644 --- a/com32/libutil/get_key.c +++ b/com32/libutil/get_key.c @@ -101,12 +101,16 @@ static const struct keycode keycodes[] = { CODE(KEY_LEFT, "\033[D"), CODE(KEY_RIGHT,"\033[C"), CODE(KEY_PGUP, "\033[5~"), + CODE(KEY_PGUP, "\033[V"), CODE(KEY_PGDN, "\033[6~"), + CODE(KEY_PGDN, "\033[U"), CODE(KEY_HOME, "\033[1~"), CODE(KEY_HOME, "\033[H"), CODE(KEY_END, "\033[4~"), CODE(KEY_END, "\033[F"), + CODE(KEY_END, "\033OF"), CODE(KEY_INS, "\033[2~"), + CODE(KEY_INS, "\033[@"), CODE(KEY_DEL, "\033[3~"), }; #define NCODES ((int)(sizeof keycodes/sizeof(struct keycode))) diff --git a/com32/modules/menu.c b/com32/modules/menu.c index e26819a..4bd8fc5 100644 --- a/com32/modules/menu.c +++ b/com32/modules/menu.c @@ -361,11 +361,13 @@ const char *run_menu(void) break; case KEY_CTRL('P'): case KEY_PGUP: + case KEY_LEFT: entry -= MENU_ROWS; top -= MENU_ROWS; break; case KEY_CTRL('N'): case KEY_PGDN: + case KEY_RIGHT: case ' ': entry += MENU_ROWS; top += MENU_ROWS; @@ -378,6 +380,15 @@ const char *run_menu(void) entry++; top++; break; + case KEY_CTRL('A'): + case KEY_HOME: + top = entry = 0; + break; + case KEY_CTRL('E'): + case KEY_END: + entry = nentries - 1; + top = max(0, nentries-MENU_ROWS); + break; case KEY_TAB: if ( allowedit ) { printf("\033[?25h"); /* Show cursor */ -- 2.7.4