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@
This commit is contained in:
nicm 2015-11-19 14:55:25 +00:00
parent 82760a9960
commit 98967c5ec9

View File

@ -132,15 +132,15 @@ alerts_queue(struct window *w, int flags)
if (!event_initialized(&w->alerts_timer)) if (!event_initialized(&w->alerts_timer))
evtimer_set(&w->alerts_timer, alerts_timer, w); evtimer_set(&w->alerts_timer, alerts_timer, w);
if (w->flags & flags) if (!alerts_fired) {
return; w->flags |= flags;
w->flags |= flags; log_debug("@%u alerts flags added %#x", w->id, flags);
log_debug("@%u alerts flags added %#x", w->id, flags);
if (!alerts_fired && alerts_enabled(w, flags)) { if (alerts_enabled(w, flags)) {
log_debug("alerts check queued (by @%u)", w->id); log_debug("alerts check queued (by @%u)", w->id);
event_once(-1, EV_TIMEOUT, alerts_callback, NULL, NULL); event_once(-1, EV_TIMEOUT, alerts_callback, NULL, NULL);
alerts_fired = 1; alerts_fired = 1;
}
} }
} }