summaryrefslogtreecommitdiffstats
path: root/window-copy.c
diff options
context:
space:
mode:
authornicm <nicm>2016-09-12 15:40:58 +0000
committernicm <nicm>2016-09-12 15:40:58 +0000
commit2e5584c2b41df1c1b836c3229ea78f8ea3d81054 (patch)
tree1f790c7d13f657d2e22bb292c56968cbc84bf675 /window-copy.c
parentfed1e384ad7eb88cc6203e49d4efa8e5ed4edb59 (diff)
Allow repeat count to be specified in mode key tables with bind-key -R,
and set the default repeat count to 5 for WheelUp and WheelDown in copy-mode.
Diffstat (limited to 'window-copy.c')
-rw-r--r--window-copy.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/window-copy.c b/window-copy.c
index dfd0dc06..320cc3d4 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -538,7 +538,9 @@ window_copy_key(struct window_pane *wp, struct client *c, struct session *sess,
return;
}
- cmd = mode_key_lookup(&data->mdata, key, &arg);
+ cmd = mode_key_lookup(&data->mdata, key, &arg, &np);
+ if (data->numprefix > 0)
+ np = data->numprefix;
if (cmd != MODEKEYCOPY_PREVIOUSPAGE &&
cmd != MODEKEYCOPY_NEXTPAGE &&
cmd != MODEKEYCOPY_SCROLLUP &&
@@ -900,11 +902,11 @@ window_copy_key_input(struct window_pane *wp, key_code key)
struct screen *s = &data->screen;
const char *bufdata;
size_t inputlen, n, bufsize;
- int np;
+ u_int np;
struct paste_buffer *pb;
u_char ch;
- switch (mode_key_lookup(&data->mdata, key, NULL)) {
+ switch (mode_key_lookup(&data->mdata, key, NULL, &np)) {
case MODEKEYEDIT_CANCEL:
data->numprefix = -1;
return (-1);
@@ -932,10 +934,8 @@ window_copy_key_input(struct window_pane *wp, key_code key)
data->inputstr[inputlen + n] = '\0';
break;
case MODEKEYEDIT_ENTER:
- np = data->numprefix;
- if (np <= 0)
- np = 1;
-
+ if (data->numprefix > 0)
+ np = data->numprefix;
switch (data->inputtype) {
case WINDOW_COPY_OFF:
case WINDOW_COPY_JUMPFORWARD: