From 40e65c511502fe47932e230290537e7391ab8a83 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 27 Jul 2020 08:03:10 +0000 Subject: Add a -d option to display-message to set delay, from theonekeyg at gmail dot com in GitHub issue 2322. --- status.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'status.c') 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); } -- cgit