aboutsummaryrefslogtreecommitdiff
path: root/window-scroll.c
diff options
context:
space:
mode:
Diffstat (limited to 'window-scroll.c')
-rw-r--r--window-scroll.c33
1 files changed, 14 insertions, 19 deletions
diff --git a/window-scroll.c b/window-scroll.c
index 639f716d..c0387fd4 100644
--- a/window-scroll.c
+++ b/window-scroll.c
@@ -1,4 +1,4 @@
-/* $Id: window-scroll.c,v 1.20 2008-06-22 16:56:47 nicm Exp $ */
+/* $Id: window-scroll.c,v 1.21 2008-07-02 21:22:57 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -97,50 +97,45 @@ window_scroll_resize(struct window *w, u_int sx, u_int sy)
}
void
-window_scroll_key(struct window *w, unused struct client *c, int key)
+window_scroll_key(struct window *w, struct client *c, int key)
{
struct window_scroll_mode_data *data = w->modedata;
struct screen *s = &data->screen;
+ int table;
- switch (key) {
- case 'Q':
- case 'q':
+ table = options_get_number(&c->session->options, "mode-keys");
+ switch (mode_key_lookup(table, key)) {
+ case MODEKEY_QUIT:
window_reset_mode(w);
break;
- case 'h':
- case KEYC_LEFT:
+ case MODEKEY_LEFT:
window_scroll_scroll_left(w);
break;
- case 'l':
- case KEYC_RIGHT:
+ case MODEKEY_RIGHT:
window_scroll_scroll_right(w);
break;
- case 'k':
- case 'K':
- case KEYC_UP:
+ case MODEKEY_UP:
window_scroll_scroll_up(w);
break;
- case 'j':
- case 'J':
- case KEYC_DOWN:
+ case MODEKEY_DOWN:
window_scroll_scroll_down(w);
break;
- case '\025': /* C-u */
- case KEYC_PPAGE:
+ case MODEKEY_PPAGE:
if (data->oy + screen_size_y(s) > w->base.hsize)
data->oy = w->base.hsize;
else
data->oy += screen_size_y(s);
window_scroll_redraw_screen(w);
break;
- case '\006': /* C-f */
- case KEYC_NPAGE:
+ case MODEKEY_NPAGE:
if (data->oy < screen_size_y(s))
data->oy = 0;
else
data->oy -= screen_size_y(s);
window_scroll_redraw_screen(w);
break;
+ default:
+ break;
}
}