aboutsummaryrefslogtreecommitdiff
path: root/window.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2012-07-11 17:06:11 +0000
committerTiago Cunha <tcunha@gmx.com>2012-07-11 17:06:11 +0000
commit38530de62258baf12a89f508025f2dc38ce8b5f5 (patch)
treea0f3e9011a62083c6f4076be57c17eb3b5ca4bc7 /window.c
parentf040bc249f87c3f1f78ed18e80d2384573f56142 (diff)
downloadrtmux-38530de62258baf12a89f508025f2dc38ce8b5f5.tar.gz
rtmux-38530de62258baf12a89f508025f2dc38ce8b5f5.tar.bz2
rtmux-38530de62258baf12a89f508025f2dc38ce8b5f5.zip
Sync OpenBSD patchset 1144:
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 8eb11f20..3140a025 100644
--- a/window.c
+++ b/window.c
@@ -1174,3 +1174,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);
+ }
+ }
+}