aboutsummaryrefslogtreecommitdiff
path: root/window-copy.c
diff options
context:
space:
mode:
Diffstat (limited to 'window-copy.c')
-rw-r--r--window-copy.c38
1 files changed, 21 insertions, 17 deletions
diff --git a/window-copy.c b/window-copy.c
index d87a645e..7ca4cd34 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -94,6 +94,7 @@ window_copy_init(struct window_pane *wp)
struct screen *s;
struct screen_write_ctx ctx;
u_int i;
+ int keys;
wp->modedata = data = xmalloc(sizeof *data);
data->ox = 0;
@@ -105,8 +106,11 @@ window_copy_init(struct window_pane *wp)
screen_init(s, screen_size_x(&wp->base), screen_size_y(&wp->base), 0);
s->mode |= MODE_MOUSE;
- mode_key_init(&data->mdata,
- options_get_number(&wp->window->options, "mode-keys"), 0);
+ keys = options_get_number(&wp->window->options, "mode-keys");
+ if (keys == MODEKEY_EMACS)
+ mode_key_init(&data->mdata, mode_key_emacs_copy);
+ else
+ mode_key_init(&data->mdata, mode_key_vi_copy);
s->cx = data->cx;
s->cy = data->cy;
@@ -164,25 +168,25 @@ window_copy_key(struct window_pane *wp, struct client *c, int key)
struct screen *s = &data->screen;
switch (mode_key_lookup(&data->mdata, key)) {
- case MODEKEYCMD_QUIT:
+ case MODEKEYCOPY_QUIT:
window_pane_reset_mode(wp);
break;
- case MODEKEYCMD_LEFT:
+ case MODEKEYCOPY_LEFT:
window_copy_cursor_left(wp);
return;
- case MODEKEYCMD_RIGHT:
+ case MODEKEYCOPY_RIGHT:
window_copy_cursor_right(wp);
return;
- case MODEKEYCMD_UP:
+ case MODEKEYCOPY_UP:
window_copy_cursor_up(wp);
return;
- case MODEKEYCMD_DOWN:
+ case MODEKEYCOPY_DOWN:
window_copy_cursor_down(wp);
return;
- case MODEKEYCMD_PREVIOUSPAGE:
+ case MODEKEYCOPY_PREVIOUSPAGE:
window_copy_pageup(wp);
break;
- case MODEKEYCMD_NEXTPAGE:
+ case MODEKEYCOPY_NEXTPAGE:
if (data->oy < screen_size_y(s))
data->oy = 0;
else
@@ -190,33 +194,33 @@ window_copy_key(struct window_pane *wp, struct client *c, int key)
window_copy_update_selection(wp);
window_copy_redraw_screen(wp);
break;
- case MODEKEYCMD_STARTSELECTION:
+ case MODEKEYCOPY_STARTSELECTION:
window_copy_start_selection(wp);
window_copy_redraw_screen(wp);
break;
- case MODEKEYCMD_CLEARSELECTION:
+ case MODEKEYCOPY_CLEARSELECTION:
screen_clear_selection(&data->screen);
window_copy_redraw_screen(wp);
break;
- case MODEKEYCMD_COPYSELECTION:
+ case MODEKEYCOPY_COPYSELECTION:
if (c != NULL && c->session != NULL) {
window_copy_copy_selection(wp, c);
window_pane_reset_mode(wp);
}
break;
- case MODEKEYCMD_STARTOFLINE:
+ case MODEKEYCOPY_STARTOFLINE:
window_copy_cursor_start_of_line(wp);
break;
- case MODEKEYCMD_BACKTOINDENTATION:
+ case MODEKEYCOPY_BACKTOINDENTATION:
window_copy_cursor_back_to_indentation(wp);
break;
- case MODEKEYCMD_ENDOFLINE:
+ case MODEKEYCOPY_ENDOFLINE:
window_copy_cursor_end_of_line(wp);
break;
- case MODEKEYCMD_NEXTWORD:
+ case MODEKEYCOPY_NEXTWORD:
window_copy_cursor_next_word(wp);
break;
- case MODEKEYCMD_PREVIOUSWORD:
+ case MODEKEYCOPY_PREVIOUSWORD:
window_copy_cursor_previous_word(wp);
break;
default: