diff options
author | 2020-02-19 14:25:00 +0000 | |
---|---|---|
committer | 2020-02-19 14:25:00 +0000 | |
commit | b44a6ab906e8b32c4719e057e9158f2df53e5bed (patch) | |
tree | 8470af9fe371bde6195965fecae094b0f1dcffb3 /usr.bin/tmux/server-client.c | |
parent | document new option combo (diff) | |
download | wireguard-openbsd-b44a6ab906e8b32c4719e057e9158f2df53e5bed.tar.xz wireguard-openbsd-b44a6ab906e8b32c4719e057e9158f2df53e5bed.zip |
A few fixes to make modifier keys and dragging work - need to remove the
modifiers before checking for the dragging marker key, and apply them
before looking up the end key. Also fix key-to-string with modifiers for
special keys.
Diffstat (limited to 'usr.bin/tmux/server-client.c')
-rw-r--r-- | usr.bin/tmux/server-client.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c index 46e6cc95cdf..c4ea4b85f4e 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.304 2020/02/11 07:01:08 nicm Exp $ */ +/* $OpenBSD: server-client.c,v 1.305 2020/02/19 14:25:00 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com> @@ -662,8 +662,7 @@ have_event: break; } c->tty.mouse_drag_flag = 0; - - return (key); + goto out; } /* Convert to a key binding. */ @@ -958,6 +957,7 @@ have_event: if (key == KEYC_UNKNOWN) return (KEYC_UNKNOWN); +out: /* Apply modifiers if any. */ if (b & MOUSE_MASK_META) key |= KEYC_ESCAPE; @@ -966,6 +966,8 @@ have_event: if (b & MOUSE_MASK_SHIFT) key |= KEYC_SHIFT; + if (log_get_level() != 0) + log_debug("mouse key is %s", key_string_lookup_key (key)); return (key); } @@ -1059,7 +1061,7 @@ server_client_key_callback(struct cmdq_item *item, void *data) * Mouse drag is in progress, so fire the callback (now that * the mouse event is valid). */ - if (key == KEYC_DRAGGING) { + if ((key & KEYC_MASK_KEY) == KEYC_DRAGGING) { c->tty.mouse_drag_update(c, m); goto out; } |