mirror of
https://github.com/tmux/tmux.git
synced 2025-01-05 23:38:48 +00:00
Some other ctrl keys need to be translated with extended keys on.
This commit is contained in:
parent
574a9e4b6c
commit
8425084b8a
33
input-keys.c
33
input-keys.c
@ -498,10 +498,35 @@ input_key(struct screen *s, struct bufferevent *bev, key_code key)
|
||||
|
||||
/* No builtin key sequence; construct an extended key sequence. */
|
||||
if (~s->mode & MODE_KEXTENDED) {
|
||||
if ((key & KEYC_MASK_MODIFIERS) == KEYC_CTRL &&
|
||||
(key & KEYC_MASK_KEY) < KEYC_BASE)
|
||||
return (input_key(s, bev, key & ~KEYC_CTRL));
|
||||
goto missing;
|
||||
justkey = (key & KEYC_MASK_KEY);
|
||||
if ((key & KEYC_MASK_MODIFIERS) != KEYC_CTRL)
|
||||
goto missing;
|
||||
switch (justkey) {
|
||||
case ' ':
|
||||
case '2':
|
||||
key = 0||(key & ~KEYC_MASK_KEY);
|
||||
break;
|
||||
case '|':
|
||||
key = 28|(key & ~KEYC_MASK_KEY);
|
||||
break;
|
||||
case '6':
|
||||
key = 30|(key & ~KEYC_MASK_KEY);
|
||||
break;
|
||||
case '-':
|
||||
case '/':
|
||||
key = 31|(key & ~KEYC_MASK_KEY);
|
||||
break;
|
||||
case '?':
|
||||
key = 127|(key & ~KEYC_MASK_KEY);
|
||||
break;
|
||||
default:
|
||||
if (justkey >= 'A' && justkey <= '_')
|
||||
key = (justkey - 'A')|(key & ~KEYC_MASK_KEY);
|
||||
else if (justkey >= 'a' && justkey <= '~')
|
||||
key = (justkey - 96)|(key & ~KEYC_MASK_KEY);
|
||||
break;
|
||||
}
|
||||
return (input_key(s, bev, key & ~KEYC_CTRL));
|
||||
}
|
||||
outkey = (key & KEYC_MASK_KEY);
|
||||
switch (key & KEYC_MASK_MODIFIERS) {
|
||||
|
@ -343,7 +343,7 @@ tty_default_features(int *feat, const char *name, u_int version)
|
||||
.features = "256,bpaste,ccolour,cstyle,title"
|
||||
},
|
||||
{ .name = "iTerm2",
|
||||
.features = TTY_FEATURES_BASE_MODERN_XTERM ",cstyle,margins,sync"
|
||||
.features = TTY_FEATURES_BASE_MODERN_XTERM ",cstyle,extkeys,margins,sync"
|
||||
},
|
||||
{ .name = "XTerm",
|
||||
.features = TTY_FEATURES_BASE_MODERN_XTERM ",ccolour,cstyle,extkeys,focus,margins,rectfill"
|
||||
|
Loading…
Reference in New Issue
Block a user