aboutsummaryrefslogtreecommitdiff
path: root/status.c
diff options
context:
space:
mode:
authornicm <nicm>2020-07-27 08:03:10 +0000
committernicm <nicm>2020-07-27 08:03:10 +0000
commit40e65c511502fe47932e230290537e7391ab8a83 (patch)
tree0ccd24065994a052d1ecc377a311b6c7dcfafb83 /status.c
parentd329b035cee47d968a8c93b5cbd8fde879ce6f0d (diff)
downloadrtmux-40e65c511502fe47932e230290537e7391ab8a83.tar.gz
rtmux-40e65c511502fe47932e230290537e7391ab8a83.tar.bz2
rtmux-40e65c511502fe47932e230290537e7391ab8a83.zip
Add a -d option to display-message to set delay, from theonekeyg at
gmail dot com in GitHub issue 2322.
Diffstat (limited to 'status.c')
-rw-r--r--status.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/status.c b/status.c
index 7313d2a0..668c0a3b 100644
--- a/status.c
+++ b/status.c
@@ -423,11 +423,11 @@ status_redraw(struct client *c)
/* Set a status line message. */
void
-status_message_set(struct client *c, int ignore_styles, const char *fmt, ...)
+status_message_set(struct client *c, int delay, int ignore_styles,
+ const char *fmt, ...)
{
struct timeval tv;
va_list ap;
- int delay;
status_message_clear(c);
status_push_screen(c);
@@ -439,7 +439,12 @@ status_message_set(struct client *c, int ignore_styles, const char *fmt, ...)
server_add_message("%s message: %s", c->name, c->message_string);
- delay = options_get_number(c->session->options, "display-time");
+ /*
+ * With delay -1, the display-time option is used; zero means wait for
+ * key press; more than zero is the actual delay time in milliseconds.
+ */
+ if (delay == -1)
+ delay = options_get_number(c->session->options, "display-time");
if (delay > 0) {
tv.tv_sec = delay / 1000;
tv.tv_usec = (delay % 1000) * 1000L;
@@ -447,6 +452,7 @@ status_message_set(struct client *c, int ignore_styles, const char *fmt, ...)
if (event_initialized(&c->message_timer))
evtimer_del(&c->message_timer);
evtimer_set(&c->message_timer, status_message_callback, c);
+
evtimer_add(&c->message_timer, &tv);
}