summaryrefslogtreecommitdiff
path: root/usr.bin/tmux/input.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2019-03-12 11:16:51 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2019-03-12 11:16:51 +0000
commitc456969731f70c3030cafcfcd4a67fc5aa1cd36c (patch)
treefc1ae91d94379b8a09eecfb31ee3be5e7c6f59df /usr.bin/tmux/input.c
parentbf3b2b3954f062c42cec536e1c766d1d41097483 (diff)
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.
Diffstat (limited to 'usr.bin/tmux/input.c')
-rw-r--r--usr.bin/tmux/input.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.bin/tmux/input.c b/usr.bin/tmux/input.c
index 634d8132439..9cd6275f966 100644
--- a/usr.bin/tmux/input.c
+++ b/usr.bin/tmux/input.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: input.c,v 1.141 2019/03/12 07:39:27 nicm Exp $ */
+/* $OpenBSD: input.c,v 1.142 2019/03/12 11:16:50 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -805,7 +805,7 @@ input_reset(struct window_pane *wp, int clear)
input_reset_cell(ictx);
if (clear) {
- if (wp->mode == NULL)
+ if (TAILQ_EMPTY(&wp->modes))
screen_write_start(&ictx->ctx, wp, &wp->base);
else
screen_write_start(&ictx->ctx, NULL, &wp->base);
@@ -861,7 +861,7 @@ input_parse(struct window_pane *wp)
* Open the screen. Use NULL wp if there is a mode set as don't want to
* update the tty.
*/
- if (wp->mode == NULL)
+ if (TAILQ_EMPTY(&wp->modes))
screen_write_start(&ictx->ctx, wp, &wp->base);
else
screen_write_start(&ictx->ctx, NULL, &wp->base);