aboutsummaryrefslogtreecommitdiff
path: root/window.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2012-07-08 07:27:32 +0000
committerNicholas Marriott <nicm@openbsd.org>2012-07-08 07:27:32 +0000
commit63f5c38023439e23365b18581eb32f530c66a2d9 (patch)
treec0edcb2175cac3a4718b51870b3d07b98770a3b4 /window.c
parent67b926cf3c77737e3b40c9d70c38314ac19ba105 (diff)
downloadrtmux-63f5c38023439e23365b18581eb32f530c66a2d9.tar.gz
rtmux-63f5c38023439e23365b18581eb32f530c66a2d9.tar.bz2
rtmux-63f5c38023439e23365b18581eb32f530c66a2d9.zip
Clear flags across all sessions, from Thomas Adam.
Diffstat (limited to 'window.c')
-rw-r--r--window.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/window.c b/window.c
index 0d2b74bf..cf13c906 100644
--- a/window.c
+++ b/window.c
@@ -1164,3 +1164,31 @@ window_pane_find_right(struct window_pane *wp)
}
return (NULL);
}
+
+/* Clear alert flags for a winlink */
+void
+winlink_clear_flags(struct winlink *wl)
+{
+ struct winlink *wm;
+ struct session *s;
+ struct window *w;
+ u_int i;
+
+ for (i = 0; i < ARRAY_LENGTH(&windows); i++) {
+ if ((w = ARRAY_ITEM(&windows, i)) == NULL)
+ continue;
+
+ RB_FOREACH(s, sessions, &sessions) {
+ if ((wm = session_has(s, w)) == NULL)
+ continue;
+
+ if (wm->window != wl->window)
+ continue;
+ if ((wm->flags & WINLINK_ALERTFLAGS) == 0)
+ continue;
+
+ wm->flags &= ~WINLINK_ALERTFLAGS;
+ server_status_session(s);
+ }
+ }
+}