From cc743dc296f9f8b5505ee217f15748f8d7c2b343 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 4 Jul 2018 12:30:52 +0000 Subject: Add set-hook -R to run a hook immediately (useful to set multiple hooks to the same thing). --- notify.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'notify.c') diff --git a/notify.c b/notify.c index 0dc8c5cf..96c0e590 100644 --- a/notify.c +++ b/notify.c @@ -36,7 +36,7 @@ struct notify_entry { }; static void -notify_hook(struct cmdq_item *item, struct notify_entry *ne) +notify_hook1(struct cmdq_item *item, struct notify_entry *ne) { struct cmd_find_state fs; struct hook *hook; @@ -102,7 +102,7 @@ notify_callback(struct cmdq_item *item, void *data) if (strcmp(ne->name, "session-window-changed") == 0) control_notify_session_window_changed(ne->session); - notify_hook(item, ne); + notify_hook1(item, ne); if (ne->client != NULL) server_client_unref(ne->client); @@ -154,6 +154,24 @@ notify_add(const char *name, struct cmd_find_state *fs, struct client *c, cmdq_append(NULL, new_item); } +void +notify_hook(struct cmdq_item *item, const char *name) +{ + struct notify_entry ne; + + memset(&ne, 0, sizeof ne); + + ne.name = name; + cmd_find_copy_state(&ne.fs, &item->target); + + ne.client = item->client; + ne.session = item->target.s; + ne.window = item->target.w; + ne.pane = item->target.wp->id; + + notify_hook1(item, &ne); +} + void notify_input(struct window_pane *wp, struct evbuffer *input) { -- cgit v1.2.3