Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam 2023-01-16 14:01:10 +00:00
commit 789cb91f31
4 changed files with 12 additions and 7 deletions

View File

@ -74,7 +74,7 @@ cmd_send_keys_inject_key(struct cmdq_item *item, struct cmdq_item *after,
if (tc == NULL)
return (item);
event = xmalloc(sizeof *event);
event->key = key;
event->key = key|KEYC_SENT;
memset(&event->m, 0, sizeof event->m);
if (server_client_handle_key(tc, event) == 0)
free(event);

View File

@ -462,6 +462,8 @@ out:
strlcat(out, "B", sizeof out);
if (saved & KEYC_EXTENDED)
strlcat(out, "E", sizeof out);
if (saved & KEYC_SENT)
strlcat(out, "S", sizeof out);
strlcat(out, "]", sizeof out);
}
return (out);

View File

@ -1887,7 +1887,9 @@ server_client_key_callback(struct cmdq_item *item, void *data)
goto forward_key;
/* Treat everything as a regular key when pasting is detected. */
if (!KEYC_IS_MOUSE(key) && server_client_assume_paste(s))
if (!KEYC_IS_MOUSE(key) &&
(~key & KEYC_SENT) &&
server_client_assume_paste(s))
goto forward_key;
/*

1
tmux.h
View File

@ -139,6 +139,7 @@ struct winlink;
#define KEYC_BUILD_MODIFIERS 0x10000000000000ULL
#define KEYC_VI 0x20000000000000ULL
#define KEYC_EXTENDED 0x40000000000000ULL
#define KEYC_SENT 0x80000000000000ULL
/* Masks for key bits. */
#define KEYC_MASK_MODIFIERS 0x00f00000000000ULL