mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 21:56:57 +00:00
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.
This commit is contained in:
14
cmd-queue.c
14
cmd-queue.c
@ -404,10 +404,11 @@ cmdq_guard(struct cmdq_item *item, const char *guard, int flags)
|
||||
void
|
||||
cmdq_print(struct cmdq_item *item, const char *fmt, ...)
|
||||
{
|
||||
struct client *c = item->client;
|
||||
struct window_pane *wp;
|
||||
va_list ap;
|
||||
char *tmp, *msg;
|
||||
struct client *c = item->client;
|
||||
struct window_pane *wp;
|
||||
struct window_mode_entry *wme;
|
||||
va_list ap;
|
||||
char *tmp, *msg;
|
||||
|
||||
va_start(ap, fmt);
|
||||
|
||||
@ -426,10 +427,9 @@ cmdq_print(struct cmdq_item *item, const char *fmt, ...)
|
||||
server_client_push_stdout(c);
|
||||
} else {
|
||||
wp = c->session->curw->window->active;
|
||||
if (wp->mode == NULL || wp->mode->mode != &window_view_mode) {
|
||||
window_pane_reset_mode(wp);
|
||||
wme = TAILQ_FIRST(&wp->modes);
|
||||
if (wme == NULL || wme->mode != &window_view_mode)
|
||||
window_pane_set_mode(wp, &window_view_mode, NULL, NULL);
|
||||
}
|
||||
window_copy_vadd(wp, fmt, ap);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user