mirror of
https://github.com/tmux/tmux.git
synced 2024-12-26 03:19:16 +00:00
Remove flags from the prefix before comparing with the received key so
that modifier keys with flags work correctly, GitHub issue 3764.
This commit is contained in:
parent
008ecd4592
commit
f7bf7e9671
@ -1867,7 +1867,7 @@ server_client_key_callback(struct cmdq_item *item, void *data)
|
|||||||
struct key_binding *bd;
|
struct key_binding *bd;
|
||||||
int xtimeout, flags;
|
int xtimeout, flags;
|
||||||
struct cmd_find_state fs;
|
struct cmd_find_state fs;
|
||||||
key_code key0;
|
key_code key0, prefix, prefix2;
|
||||||
|
|
||||||
/* Check the client is good to accept input. */
|
/* Check the client is good to accept input. */
|
||||||
if (s == NULL || (c->flags & CLIENT_UNATTACHEDFLAGS))
|
if (s == NULL || (c->flags & CLIENT_UNATTACHEDFLAGS))
|
||||||
@ -1939,9 +1939,11 @@ table_changed:
|
|||||||
* The prefix always takes precedence and forces a switch to the prefix
|
* The prefix always takes precedence and forces a switch to the prefix
|
||||||
* table, unless we are already there.
|
* table, unless we are already there.
|
||||||
*/
|
*/
|
||||||
|
prefix = (key_code)options_get_number(s->options, "prefix");
|
||||||
|
prefix2 = (key_code)options_get_number(s->options, "prefix2");
|
||||||
key0 = (key & (KEYC_MASK_KEY|KEYC_MASK_MODIFIERS));
|
key0 = (key & (KEYC_MASK_KEY|KEYC_MASK_MODIFIERS));
|
||||||
if ((key0 == (key_code)options_get_number(s->options, "prefix") ||
|
if ((key0 == (prefix & (KEYC_MASK_KEY|KEYC_MASK_MODIFIERS)) ||
|
||||||
key0 == (key_code)options_get_number(s->options, "prefix2")) &&
|
key0 == (prefix2 & (KEYC_MASK_KEY|KEYC_MASK_MODIFIERS))) &&
|
||||||
strcmp(table->name, "prefix") != 0) {
|
strcmp(table->name, "prefix") != 0) {
|
||||||
server_client_set_key_table(c, "prefix");
|
server_client_set_key_table(c, "prefix");
|
||||||
server_status_client(c);
|
server_status_client(c);
|
||||||
|
4
tmux.1
4
tmux.1
@ -590,8 +590,8 @@ line (the \e and the newline are completely removed).
|
|||||||
This is called line continuation and applies both inside and outside quoted
|
This is called line continuation and applies both inside and outside quoted
|
||||||
strings and in comments, but not inside braces.
|
strings and in comments, but not inside braces.
|
||||||
.Pp
|
.Pp
|
||||||
Command arguments may be specified as strings surrounded by single (\[aq]) quotes,
|
Command arguments may be specified as strings surrounded by single (\[aq])
|
||||||
double quotes (\[dq]) or braces ({}).
|
quotes, double quotes (\[dq]) or braces ({}).
|
||||||
.\" "
|
.\" "
|
||||||
This is required when the argument contains any special character.
|
This is required when the argument contains any special character.
|
||||||
Single and double quoted strings cannot span multiple lines except with line
|
Single and double quoted strings cannot span multiple lines except with line
|
||||||
|
Loading…
Reference in New Issue
Block a user