Add a -d option to display-message to set delay, from theonekeyg at

gmail dot com in GitHub issue 2322.
This commit is contained in:
nicm
2020-07-27 08:03:10 +00:00
parent d329b035ce
commit 40e65c5115
9 changed files with 39 additions and 16 deletions

View File

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