From 3f6bfbaf2babcc7f08f628a82ff31b0b52014e58 Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 12 Mar 2019 11:16:49 +0000 Subject: Allow multiple modes to be open in a pane. A stack of open modes is kept and the previous restored when the top is exited. If a mode that is already on the stack is entered, the existing instance is moved to the top as the active mode rather than being opened new. --- tmux.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'tmux.h') diff --git a/tmux.h b/tmux.h index 9c986202..329af6b2 100644 --- a/tmux.h +++ b/tmux.h @@ -722,7 +722,10 @@ struct window_mode_entry { const struct window_mode *mode; void *data; + struct screen *screen; u_int prefix; + + TAILQ_ENTRY (window_mode_entry) entry; }; /* Child window structure. */ @@ -768,6 +771,7 @@ struct window_pane { int fd; struct bufferevent *event; + u_int disabled; struct event resize_timer; @@ -793,7 +797,7 @@ struct window_pane { struct grid *saved_grid; struct grid_cell saved_cell; - struct window_mode_entry *mode; + TAILQ_HEAD (, window_mode_entry) modes; struct event modetimer; time_t modelast; char *searchstr; @@ -2208,6 +2212,7 @@ int window_pane_set_mode(struct window_pane *, const struct window_mode *, struct cmd_find_state *, struct args *); void window_pane_reset_mode(struct window_pane *); +void window_pane_reset_mode_all(struct window_pane *); void window_pane_key(struct window_pane *, struct client *, struct session *, struct winlink *, key_code, struct mouse_event *); -- cgit