From 98967c5ec97feef99f8278df9c3b993bbff9c0d5 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 19 Nov 2015 14:55:25 +0000 Subject: The activity flag could already be set, so queue the callback always (if not already queued) rather than only if the flag is being added. Fixes a problem reported by tim@ --- alerts.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'alerts.c') diff --git a/alerts.c b/alerts.c index 32e0d496..e08b183d 100644 --- a/alerts.c +++ b/alerts.c @@ -132,15 +132,15 @@ alerts_queue(struct window *w, int flags) if (!event_initialized(&w->alerts_timer)) evtimer_set(&w->alerts_timer, alerts_timer, w); - if (w->flags & flags) - return; - w->flags |= flags; - log_debug("@%u alerts flags added %#x", w->id, flags); - - if (!alerts_fired && alerts_enabled(w, flags)) { - log_debug("alerts check queued (by @%u)", w->id); - event_once(-1, EV_TIMEOUT, alerts_callback, NULL, NULL); - alerts_fired = 1; + if (!alerts_fired) { + w->flags |= flags; + log_debug("@%u alerts flags added %#x", w->id, flags); + + if (alerts_enabled(w, flags)) { + log_debug("alerts check queued (by @%u)", w->id); + event_once(-1, EV_TIMEOUT, alerts_callback, NULL, NULL); + alerts_fired = 1; + } } } -- cgit v1.2.3