summaryrefslogtreecommitdiffstats
path: root/server-client.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2019-03-12 12:02:42 +0000
committerThomas Adam <thomas@xteddy.org>2019-03-12 12:02:42 +0000
commit3ec05e940505f1d0b4e55413f949fdfaceddedde (patch)
tree843d754e76bb7386f39cb5743ab8de859e880ddd /server-client.c
parentf8a30e158821876e8c30d46ab2728bce739e35de (diff)
parent3f6bfbaf2babcc7f08f628a82ff31b0b52014e58 (diff)
Merge branch 'obsd-master'
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/server-client.c b/server-client.c
index df44a4a3..098ff45e 100644
--- a/server-client.c
+++ b/server-client.c
@@ -919,18 +919,18 @@ server_client_assume_paste(struct session *s)
void
server_client_handle_key(struct client *c, key_code key)
{
- struct mouse_event *m = &c->tty.mouse;
- struct session *s = c->session;
- struct winlink *wl;
- struct window *w;
- struct window_pane *wp;
- struct timeval tv;
- struct key_table *table, *first;
- const char *tablename;
- struct key_binding *bd;
- int xtimeout, flags;
- struct cmd_find_state fs;
- key_code key0;
+ struct mouse_event *m = &c->tty.mouse;
+ struct session *s = c->session;
+ struct winlink *wl;
+ struct window *w;
+ struct window_pane *wp;
+ struct window_mode_entry *wme;
+ struct timeval tv;
+ struct key_table *table, *first;
+ struct key_binding *bd;
+ int xtimeout, flags;
+ struct cmd_find_state fs;
+ key_code key0;
/* Check the client is good to accept input. */
if (s == NULL || (c->flags & (CLIENT_DEAD|CLIENT_SUSPENDED)) != 0)
@@ -1007,11 +1007,9 @@ server_client_handle_key(struct client *c, key_code key)
*/
if (server_client_is_default_key_table(c, c->keytable) &&
wp != NULL &&
- wp->mode != NULL &&
- wp->mode->mode->key_table != NULL) {
- tablename = wp->mode->mode->key_table(wp->mode);
- table = key_bindings_get_table(tablename, 1);
- }
+ (wme = TAILQ_FIRST(&wp->modes)) != NULL &&
+ wme->mode->key_table != NULL)
+ table = key_bindings_get_table(wme->mode->key_table(wme), 1);
else
table = c->keytable;
first = table;