summaryrefslogtreecommitdiffstats
path: root/window-choose.c
diff options
context:
space:
mode:
authornicm <nicm>2014-03-31 21:36:43 +0000
committernicm <nicm>2014-03-31 21:36:43 +0000
commit9368914ee782f6ea9d7ea8f6b28b9d87ffae8023 (patch)
treef5d90b519bb9ceee331e8f659e4eb1ee89b6fe57 /window-choose.c
parent175f215187b1c978ca4cc4988a78d067122e2b0c (diff)
Add start-of-list, end-of-list, top-line and bottom-line in choice mode,
from madmaverick9 at roxxmail dot eu, similar diff a few days later from Marcel Partap.
Diffstat (limited to 'window-choose.c')
-rw-r--r--window-choose.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/window-choose.c b/window-choose.c
index 0cf7f66b..bb881aa5 100644
--- a/window-choose.c
+++ b/window-choose.c
@@ -679,6 +679,29 @@ window_choose_key(struct window_pane *wp, unused struct session *sess, int key)
window_choose_prompt_input(WINDOW_CHOOSE_GOTO_ITEM,
"Goto Item", wp, key);
break;
+ case MODEKEYCHOICE_STARTOFLIST:
+ data->selected = 0;
+ data->top = 0;
+ window_choose_redraw_screen(wp);
+ break;
+ case MODEKEYCHOICE_TOPLINE:
+ data->selected = data->top;
+ window_choose_redraw_screen(wp);
+ break;
+ case MODEKEYCHOICE_BOTTOMLINE:
+ data->selected = data->top + screen_size_y(s) - 1;
+ if (data->selected > items - 1)
+ data->selected = items - 1;
+ window_choose_redraw_screen(wp);
+ break;
+ case MODEKEYCHOICE_ENDOFLIST:
+ data->selected = items - 1;
+ if (screen_size_y(s) < items)
+ data->top = items - screen_size_y(s);
+ else
+ data->top = 0;
+ window_choose_redraw_screen(wp);
+ break;
default:
idx = window_choose_index_key(data, key);
if (idx < 0 || (u_int) idx >= ARRAY_LENGTH(&data->list))