summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2024-09-11 19:12:34 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2024-09-11 19:12:34 +0000
commit7b66e84dd4292a888810933f6ca5cf3127203b13 (patch)
tree8a16dcbc312dae7f91300ceeed603228251f3219 /usr.bin
parent0198d52b69209fe6eddb0ce21bae1425ff4a3d5a (diff)
Mouse move keys are not useful as key bindings because we do not turn
them on unless the application requests them. Ignore them so they do not cause the prefix to be canceled, GitHub issue 4111.
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/tmux/server-client.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c
index 7d89aee8db6..a8c5012224a 100644
--- a/usr.bin/tmux/server-client.c
+++ b/usr.bin/tmux/server-client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server-client.c,v 1.407 2024/08/27 07:25:27 nicm Exp $ */
+/* $OpenBSD: server-client.c,v 1.408 2024/09/11 19:12:33 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -2024,7 +2024,19 @@ try_again:
}
/*
- * No match in this table. If not in the root table or if repeating,
+ * Binding movement keys is useless since we only turn them on when the
+ * application requests, so don't let them exit the prefix table.
+ */
+ if (key == KEYC_MOUSEMOVE_PANE ||
+ key == KEYC_MOUSEMOVE_STATUS ||
+ key == KEYC_MOUSEMOVE_STATUS_LEFT ||
+ key == KEYC_MOUSEMOVE_STATUS_RIGHT ||
+ key == KEYC_MOUSEMOVE_STATUS_DEFAULT ||
+ key == KEYC_MOUSEMOVE_BORDER)
+ goto forward_key;
+
+ /*
+ * No match in this table. If not in the root table or if repeating
* switch the client back to the root table and try again.
*/
log_debug("not found in key table %s", table->name);