mirror of
https://github.com/tmate-io/tmate.git
synced 2025-08-21 02:24:57 +02:00
Add scroll-up/scroll-down for choose/more mode, from Micah Cowan.
This commit is contained in:
@@ -225,16 +225,41 @@ window_choose_key(struct window_pane *wp, unused struct client *c, int key)
|
||||
}
|
||||
data->selected++;
|
||||
|
||||
if (data->selected >= data->top + screen_size_y(&data->screen))
|
||||
window_choose_scroll_down(wp);
|
||||
else {
|
||||
if (data->selected < data->top + screen_size_y(s)) {
|
||||
screen_write_start(&ctx, wp, NULL);
|
||||
window_choose_write_line(
|
||||
wp, &ctx, data->selected - data->top);
|
||||
window_choose_write_line(
|
||||
wp, &ctx, data->selected - 1 - data->top);
|
||||
screen_write_stop(&ctx);
|
||||
}
|
||||
} else
|
||||
window_choose_scroll_down(wp);
|
||||
break;
|
||||
case MODEKEYCHOICE_SCROLLUP:
|
||||
if (items == 0 || data->top == 0)
|
||||
break;
|
||||
if (data->selected == data->top + screen_size_y(s) - 1) {
|
||||
data->selected--;
|
||||
window_choose_scroll_up(wp);
|
||||
screen_write_start(&ctx, wp, NULL);
|
||||
window_choose_write_line(
|
||||
wp, &ctx, screen_size_y(s) - 1);
|
||||
screen_write_stop(&ctx);
|
||||
} else
|
||||
window_choose_scroll_up(wp);
|
||||
break;
|
||||
case MODEKEYCHOICE_SCROLLDOWN:
|
||||
if (items == 0 ||
|
||||
data->top + screen_size_y(&data->screen) >= items)
|
||||
break;
|
||||
if (data->selected == data->top) {
|
||||
data->selected++;
|
||||
window_choose_scroll_down(wp);
|
||||
screen_write_start(&ctx, wp, NULL);
|
||||
window_choose_write_line(wp, &ctx, 0);
|
||||
screen_write_stop(&ctx);
|
||||
} else
|
||||
window_choose_scroll_down(wp);
|
||||
break;
|
||||
case MODEKEYCHOICE_PAGEUP:
|
||||
if (data->selected < screen_size_y(s)) {
|
||||
|
Reference in New Issue
Block a user