Do not put the window on the alerts queue and add a reference unless the
authornicm <nicm@openbsd.org>
Fri, 28 Apr 2017 19:10:48 +0000 (19:10 +0000)
committernicm <nicm@openbsd.org>
Fri, 28 Apr 2017 19:10:48 +0000 (19:10 +0000)
alert is enabled and we are actually going to add the alerts event.

usr.bin/tmux/alerts.c

index 902cb45..da4bec9 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: alerts.c,v 1.17 2017/04/21 14:09:44 nicm Exp $ */
+/* $OpenBSD: alerts.c,v 1.18 2017/04/28 19:10:48 nicm Exp $ */
 
 /*
  * Copyright (c) 2015 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -144,16 +144,18 @@ alerts_queue(struct window *w, int flags)
                log_debug("@%u alerts flags added %#x", w->id, flags);
        }
 
-       if (!w->alerts_queued) {
-               w->alerts_queued = 1;
-               TAILQ_INSERT_TAIL(&alerts_list, w, alerts_entry);
-               w->references++;
-       }
+       if (alerts_enabled(w, flags)) {
+               if (!w->alerts_queued) {
+                       w->alerts_queued = 1;
+                       TAILQ_INSERT_TAIL(&alerts_list, w, alerts_entry);
+                       w->references++;
+               }
 
-       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) {
+                       log_debug("alerts check queued (by @%u)", w->id);
+                       event_once(-1, EV_TIMEOUT, alerts_callback, NULL, NULL);
+                       alerts_fired = 1;
+               }
        }
 }