aboutsummaryrefslogtreecommitdiff
path: root/notify.c
diff options
context:
space:
mode:
authornicm <nicm>2020-04-14 06:00:52 +0000
committernicm <nicm>2020-04-14 06:00:52 +0000
commit63ec7918542a36ac9afa60b2e91f75337c5a91ff (patch)
tree2db8afeeaa9aef3734b0cbed62f423d690c09ab4 /notify.c
parentfc83517913c8280c222a6cf78ca7fb8053421b37 (diff)
downloadrtmux-63ec7918542a36ac9afa60b2e91f75337c5a91ff.tar.gz
rtmux-63ec7918542a36ac9afa60b2e91f75337c5a91ff.tar.bz2
rtmux-63ec7918542a36ac9afa60b2e91f75337c5a91ff.zip
Provide an accessor for the running queue item and use it to not let
hooks recurse.
Diffstat (limited to 'notify.c')
-rw-r--r--notify.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/notify.c b/notify.c
index 3147c4e0..54254354 100644
--- a/notify.c
+++ b/notify.c
@@ -158,7 +158,11 @@ notify_add(const char *name, struct cmd_find_state *fs, struct client *c,
struct session *s, struct window *w, struct window_pane *wp)
{
struct notify_entry *ne;
- struct cmdq_item *new_item;
+ struct cmdq_item *item;
+
+ item = cmdq_running(NULL);
+ if (item != NULL && (cmdq_get_flags(item) & CMDQ_STATE_NOHOOKS))
+ return;
ne = xcalloc(1, sizeof *ne);
ne->name = xstrdup(name);
@@ -183,8 +187,7 @@ notify_add(const char *name, struct cmd_find_state *fs, struct client *c,
if (ne->fs.s != NULL) /* cmd_find_valid_state needs session */
session_add_ref(ne->fs.s, __func__);
- new_item = cmdq_get_callback(notify_callback, ne);
- cmdq_append(NULL, new_item);
+ cmdq_append(NULL, cmdq_get_callback(notify_callback, ne));
}
void