diff options
Diffstat (limited to 'window-scroll.c')
-rw-r--r-- | window-scroll.c | 33 |
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; } } |