diff options
author | nicm <nicm> | 2020-06-11 09:55:47 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-06-11 09:55:47 +0000 |
commit | 50ee41423f6f7b4c0bc83ecf9468a37fc8bf9e99 (patch) | |
tree | d2c7dec252a8331249a05f5b1d1b7f61e4537579 | |
parent | 23d79cfda87f822c7440fd572ce5fc440c079ac2 (diff) | |
download | rtmux-50ee41423f6f7b4c0bc83ecf9468a37fc8bf9e99.tar.gz rtmux-50ee41423f6f7b4c0bc83ecf9468a37fc8bf9e99.tar.bz2 rtmux-50ee41423f6f7b4c0bc83ecf9468a37fc8bf9e99.zip |
Add a -A option to pause a pane manually.
-rw-r--r-- | cmd-refresh-client.c | 2 | ||||
-rw-r--r-- | control.c | 14 | ||||
-rw-r--r-- | tmux.1 | 11 | ||||
-rw-r--r-- | tmux.h | 1 |
4 files changed, 25 insertions, 3 deletions
diff --git a/cmd-refresh-client.c b/cmd-refresh-client.c index bbe0c736..f7b6269b 100644 --- a/cmd-refresh-client.c +++ b/cmd-refresh-client.c @@ -68,6 +68,8 @@ cmd_refresh_client_update_offset(struct client *tc, const char *value) control_set_pane_off(tc, wp); else if (strcmp(colon, "continue") == 0) control_continue_pane(tc, wp); + else if (strcmp(colon, "pause") == 0) + control_pause_pane(tc, wp); out: free(copy); @@ -265,6 +265,20 @@ control_continue_pane(struct client *c, struct window_pane *wp) } } +/* Pause a pane. */ +void +control_pause_pane(struct client *c, struct window_pane *wp) +{ + struct control_pane *cp; + + cp = control_add_pane(c, wp); + if (~cp->flags & CONTROL_PANE_PAUSED) { + cp->flags |= CONTROL_PANE_PAUSED; + control_discard_pane(c, cp); + control_write(c, "%%pause %%%u", wp->id); + } +} + /* Write a line. */ static void control_vwrite(struct client *c, const char *fmt, va_list ap) @@ -1304,9 +1304,10 @@ The argument is a pane ID (with leading .Ql % ) , a colon, then one of .Ql on , -.Ql off +.Ql off , +.Ql continue or -.Ql continue . +.Ql pause . If .Ql off , .Nm @@ -1315,9 +1316,13 @@ the pane off, will stop reading from the pane. If .Ql continue , .Nm -will return to sending output to a paused pane (see the +will return to sending output to the pane if it was paused (manually or with the .Ar pause-after flag). +If +.Ql pause , +.Nm +will pause the pane. .Fl A may be given multiple times for different panes. .Pp @@ -2846,6 +2846,7 @@ void control_stop(struct client *); void control_set_pane_on(struct client *, struct window_pane *); void control_set_pane_off(struct client *, struct window_pane *); void control_continue_pane(struct client *, struct window_pane *); +void control_pause_pane(struct client *, struct window_pane *); struct window_pane_offset *control_pane_offset(struct client *, struct window_pane *, int *); void control_reset_offsets(struct client *); |