mirror of
https://github.com/tmate-io/tmate.git
synced 2026-01-23 02:24:06 +00:00
If a mouse event has no key binding, pass it through to the pane it
happened in, not the active pane like normal key presses. Fixes problems seen by Enrico Ghirardi.
This commit is contained in:
parent
380a1ea8ef
commit
640c6fdd5f
1 changed files with 15 additions and 11 deletions
|
|
@ -551,7 +551,6 @@ server_client_handle_key(struct client *c, int key)
|
|||
if (s == NULL || (c->flags & (CLIENT_DEAD|CLIENT_SUSPENDED)) != 0)
|
||||
return;
|
||||
w = s->curw->window;
|
||||
wp = w->active;
|
||||
|
||||
/* Update the activity timer. */
|
||||
if (gettimeofday(&c->activity_time, NULL) != 0)
|
||||
|
|
@ -592,19 +591,14 @@ server_client_handle_key(struct client *c, int key)
|
|||
m->valid = 1;
|
||||
m->key = key;
|
||||
|
||||
if (!options_get_number(&s->options, "mouse")) {
|
||||
window_pane_key(wp, c, s, key, m);
|
||||
return;
|
||||
}
|
||||
if (!options_get_number(&s->options, "mouse"))
|
||||
goto forward;
|
||||
} else
|
||||
m->valid = 0;
|
||||
|
||||
/* Treat everything as a regular key when pasting is detected. */
|
||||
if (!KEYC_IS_MOUSE(key) && server_client_assume_paste(s)) {
|
||||
if (!(c->flags & CLIENT_READONLY))
|
||||
window_pane_key(wp, c, s, key, m);
|
||||
return;
|
||||
}
|
||||
if (!KEYC_IS_MOUSE(key) && server_client_assume_paste(s))
|
||||
goto forward;
|
||||
|
||||
retry:
|
||||
/* Try to see if there is a key binding in the current table. */
|
||||
|
|
@ -680,7 +674,17 @@ retry:
|
|||
key == options_get_number(&s->options, "prefix2")) {
|
||||
server_client_key_table(c, "prefix");
|
||||
server_status_client(c);
|
||||
} else if (!(c->flags & CLIENT_READONLY))
|
||||
return;
|
||||
}
|
||||
|
||||
forward:
|
||||
if (c->flags & CLIENT_READONLY)
|
||||
return;
|
||||
if (KEYC_IS_MOUSE(key))
|
||||
wp = cmd_mouse_pane(m, NULL, NULL);
|
||||
else
|
||||
wp = w->active;
|
||||
if (wp != NULL)
|
||||
window_pane_key(wp, c, s, key, m);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue