summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/tty-keys.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2019-05-07 11:24:03 +0000
committernicm <nicm@openbsd.org>2019-05-07 11:24:03 +0000
commit7df29c9da42e8f683ecbffeb21a87cb387677a30 (patch)
tree5d0f14b1454e86d6b59473dfcc6882d40fdd1436 /usr.bin/tmux/tty-keys.c
parentDo not use evbuffer_add_buffer because it is destructive and doesn't (diff)
downloadwireguard-openbsd-7df29c9da42e8f683ecbffeb21a87cb387677a30.tar.xz
wireguard-openbsd-7df29c9da42e8f683ecbffeb21a87cb387677a30.zip
Treat keys in identify mode (display-panes) specially and handle them
immediately rather than queuing them (the command can block the queue which means they were not being seen until it finished which was too late). Reported by denis@ and solene@, ok solene@.
Diffstat (limited to 'usr.bin/tmux/tty-keys.c')
-rw-r--r--usr.bin/tmux/tty-keys.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/usr.bin/tmux/tty-keys.c b/usr.bin/tmux/tty-keys.c
index 64593f19925..e8aef1b5d71 100644
--- a/usr.bin/tmux/tty-keys.c
+++ b/usr.bin/tmux/tty-keys.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tty-keys.c,v 1.112 2019/05/03 18:00:19 nicm Exp $ */
+/* $OpenBSD: tty-keys.c,v 1.113 2019/05/07 11:24:03 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -573,7 +573,6 @@ tty_keys_next(struct tty *tty)
cc_t bspace;
int delay, expired = 0, n;
key_code key;
- struct cmdq_item *item;
struct mouse_event m = { 0 };
struct key_event *event;
@@ -732,9 +731,8 @@ complete_key:
event = xmalloc(sizeof *event);
event->key = key;
memcpy(&event->m, &m, sizeof event->m);
-
- item = cmdq_get_callback(server_client_key_callback, event);
- cmdq_append(c, item);
+ if (!server_client_handle_key(c, event))
+ free(event);
}
return (1);