diff options
author | Thomas Adam <thomas@xteddy.org> | 2017-06-28 14:01:13 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2017-06-28 14:01:13 +0100 |
commit | 336beeb09afcc8f381062da49a4c23c6d16a9833 (patch) | |
tree | f8a9e6817fe5b84b52b1dd9ee4086a1099895460 | |
parent | 1ca920bbebd5fb418089752aa595e4e5696e28bc (diff) | |
parent | a00b0d13ede4a0f3743606c79a38eada403f77f9 (diff) | |
download | rtmux-336beeb09afcc8f381062da49a4c23c6d16a9833.tar.gz rtmux-336beeb09afcc8f381062da49a4c23c6d16a9833.tar.bz2 rtmux-336beeb09afcc8f381062da49a4c23c6d16a9833.zip |
Merge branch 'obsd-master'
-rw-r--r-- | cmd-send-keys.c | 2 | ||||
-rw-r--r-- | input-keys.c | 2 | ||||
-rw-r--r-- | tmux.h | 4 | ||||
-rw-r--r-- | window.c | 2 |
4 files changed, 6 insertions, 4 deletions
diff --git a/cmd-send-keys.c b/cmd-send-keys.c index 5c6db347..8d2c2608 100644 --- a/cmd-send-keys.c +++ b/cmd-send-keys.c @@ -64,6 +64,8 @@ cmd_send_keys_inject(struct client *c, struct cmdq_item *item, key_code key) struct key_binding *bd, bd_find; if (wp->mode == NULL || wp->mode->key_table == NULL) { + if (options_get_number(wp->window->options, "xterm-keys")) + key |= KEYC_XTERM; window_pane_key(wp, NULL, s, key, NULL); return; } diff --git a/input-keys.c b/input-keys.c index 3aa0b557..85dc2591 100644 --- a/input-keys.c +++ b/input-keys.c @@ -176,7 +176,7 @@ input_key(struct window_pane *wp, key_code key, struct mouse_event *m) * If this is a normal 7-bit key, just send it, with a leading escape * if necessary. If it is a UTF-8 key, split it and send it. */ - justkey = (key & ~KEYC_ESCAPE); + justkey = (key & ~(KEYC_XTERM|KEYC_ESCAPE)); if (justkey <= 0x7f) { if (key & KEYC_ESCAPE) bufferevent_write(wp->event, "\033", 1); @@ -98,8 +98,8 @@ struct tmuxproc; /* Key modifier bits. */ #define KEYC_ESCAPE 0x200000000000ULL -#define KEYC_CTRL 0x400000000000ULL -#define KEYC_SHIFT 0x800000000000ULL +#define KEYC_CTRL 0x400000000000ULL +#define KEYC_SHIFT 0x800000000000ULL #define KEYC_XTERM 0x1000000000000ULL /* Mask to obtain key w/o modifiers. */ @@ -1240,7 +1240,7 @@ window_pane_key(struct window_pane *wp, struct client *c, struct session *s, if (wp->mode != NULL) { wp->modelast = time(NULL); if (wp->mode->key != NULL) - wp->mode->key(wp, c, s, key, m); + wp->mode->key(wp, c, s, (key & ~KEYC_XTERM), m); return; } |