diff options
author | Thomas Adam <thomas@xteddy.org> | 2020-06-11 12:01:19 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2020-06-11 12:01:19 +0100 |
commit | e8c99496cd49592bc4f148e143c17165509b3783 (patch) | |
tree | dbb4f6edd0f4a2ca8012287fa38418c4a7030ca4 | |
parent | ea4425b9bdc1da5f337db531104714bde3cd2ad4 (diff) | |
parent | 50ee41423f6f7b4c0bc83ecf9468a37fc8bf9e99 (diff) | |
download | rtmux-e8c99496cd49592bc4f148e143c17165509b3783.tar.gz rtmux-e8c99496cd49592bc4f148e143c17165509b3783.tar.bz2 rtmux-e8c99496cd49592bc4f148e143c17165509b3783.zip |
Merge branch 'obsd-master'
-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 @@ -2848,6 +2848,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 *); |