aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
diff options
context:
space:
mode:
authornicm <nicm>2022-08-02 11:09:26 +0000
committernicm <nicm>2022-08-02 11:09:26 +0000
commit42ba6c1b229c92256274e848e9c5ff1d59d9081b (patch)
tree2fc80315e93cdcfcf5e1e488b20a6073d5597331 /tmux.h
parent33c59100aeb49894550b97cce268f46032f4c8d6 (diff)
downloadrtmux-42ba6c1b229c92256274e848e9c5ff1d59d9081b.tar.gz
rtmux-42ba6c1b229c92256274e848e9c5ff1d59d9081b.tar.bz2
rtmux-42ba6c1b229c92256274e848e9c5ff1d59d9081b.zip
Add a third state "all" to allow-passthrough to work even in invisible
panes, from Sergei Grechanik in GitHub issue 3274.
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h46
1 files changed, 27 insertions, 19 deletions
diff --git a/tmux.h b/tmux.h
index 3f720e50..4196a31c 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1432,37 +1432,44 @@ struct tty_ctx {
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 *,