mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
Add a third state "all" to allow-passthrough to work even in invisible
panes, from Sergei Grechanik in GitHub issue 3274.
This commit is contained in:
11
input.c
11
input.c
@ -2242,22 +2242,27 @@ static int
|
||||
input_dcs_dispatch(struct input_ctx *ictx)
|
||||
{
|
||||
struct window_pane *wp = ictx->wp;
|
||||
struct options *oo = wp->options;
|
||||
struct screen_write_ctx *sctx = &ictx->ctx;
|
||||
u_char *buf = ictx->input_buf;
|
||||
size_t len = ictx->input_len;
|
||||
const char prefix[] = "tmux;";
|
||||
const u_int prefixlen = (sizeof prefix) - 1;
|
||||
long long allow_passthrough = 0;
|
||||
|
||||
if (wp == NULL)
|
||||
return (0);
|
||||
if (ictx->flags & INPUT_DISCARD)
|
||||
return (0);
|
||||
if (!options_get_number(ictx->wp->options, "allow-passthrough"))
|
||||
allow_passthrough = options_get_number(oo, "allow-passthrough");
|
||||
if (!allow_passthrough)
|
||||
return (0);
|
||||
log_debug("%s: \"%s\"", __func__, buf);
|
||||
|
||||
if (len >= prefixlen && strncmp(buf, prefix, prefixlen) == 0)
|
||||
screen_write_rawstring(sctx, buf + prefixlen, len - prefixlen);
|
||||
if (len >= prefixlen && strncmp(buf, prefix, prefixlen) == 0) {
|
||||
screen_write_rawstring(sctx, buf + prefixlen, len - prefixlen,
|
||||
allow_passthrough == 2);
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
Reference in New Issue
Block a user