Differentiate between linked and unlinked window closes and renames,

like we already do for adds. From Andre Masella.
pull/1/head
nicm 2014-04-23 10:14:29 +00:00
parent 64613b9d41
commit 7ab2690be8
1 changed files with 15 additions and 2 deletions

View File

@ -99,14 +99,19 @@ void
control_notify_window_unlinked(unused struct session *s, struct window *w)
{
struct client *c;
struct session *cs;
u_int i;
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
c = ARRAY_ITEM(&clients, i);
if (!CONTROL_SHOULD_NOTIFY_CLIENT(c) || c->session == NULL)
continue;
cs = c->session;
control_write(c, "%%window-close @%u", w->id);
if (winlink_find_by_window_id(&cs->windows, w->id) != NULL)
control_write(c, "%%window-close @%u", w->id);
else
control_write(c, "%%unlinked-window-close @%u", w->id);
}
}
@ -134,14 +139,22 @@ void
control_notify_window_renamed(struct window *w)
{
struct client *c;
struct session *cs;
u_int i;
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
c = ARRAY_ITEM(&clients, i);
if (!CONTROL_SHOULD_NOTIFY_CLIENT(c) || c->session == NULL)
continue;
cs = c->session;
control_write(c, "%%window-renamed @%u %s", w->id, w->name);
if (winlink_find_by_window_id(&cs->windows, w->id) != NULL) {
control_write(c, "%%window-renamed @%u %s", w->id,
w->name);
} else {
control_write(c, "%%unlinked-window-renamed @%u %s",
w->id, w->name);
}
}
}