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:
nicm
2022-08-02 11:09:26 +00:00
parent 33c59100ae
commit 42ba6c1b22
6 changed files with 67 additions and 33 deletions

46
tmux.h
View File

@ -1431,38 +1431,45 @@ struct tty_ctx {
void *ptr;
void *ptr2;
/*
* Whether this command should be sent even when the pane is not
* visible (used for a passthrough sequence when allow-passthrough is
* "all").
*/
int allow_invisible_panes;
/*
* Cursor and region position before the screen was updated - this is
* where the command should be applied; the values in the screen have
* already been updated.
*/
u_int ocx;
u_int ocy;
u_int ocx;
u_int ocy;
u_int orupper;
u_int orlower;
u_int orupper;
u_int orlower;
/* Target region (usually pane) offset and size. */
u_int xoff;
u_int yoff;
u_int rxoff;
u_int ryoff;
u_int sx;
u_int sy;
u_int xoff;
u_int yoff;
u_int rxoff;
u_int ryoff;
u_int sx;
u_int sy;
/* The background colour used for clearing (erasing). */
u_int bg;
u_int bg;
/* The default colours and palette. */
struct grid_cell defaults;
struct colour_palette *palette;
struct grid_cell defaults;
struct colour_palette *palette;
/* Containing region (usually window) offset and size. */
int bigger;
u_int wox;
u_int woy;
u_int wsx;
u_int wsy;
int bigger;
u_int wox;
u_int woy;
u_int wsx;
u_int wsy;
};
/* Saved message entry. */
@ -2889,7 +2896,8 @@ void screen_write_collect_add(struct screen_write_ctx *,
void screen_write_cell(struct screen_write_ctx *, const struct grid_cell *);
void screen_write_setselection(struct screen_write_ctx *, const char *,
u_char *, u_int);
void screen_write_rawstring(struct screen_write_ctx *, u_char *, u_int);
void screen_write_rawstring(struct screen_write_ctx *, u_char *, u_int,
int);
void screen_write_alternateon(struct screen_write_ctx *,
struct grid_cell *, int);
void screen_write_alternateoff(struct screen_write_ctx *,