Add a -A option to pause a pane manually.

pull/2270/head
nicm 2020-06-11 09:55:47 +00:00
parent 23d79cfda8
commit 50ee41423f
4 changed files with 25 additions and 3 deletions

View File

@ -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);

View File

@ -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)

11
tmux.1
View File

@ -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

1
tmux.h
View File

@ -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 *);