From 14b951254674c75d8422a8ac5f320a54d1dd8a48 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 4 Jun 2008 16:46:23 +0000 Subject: Add activity monitoring, also invert items on taskbar which have activity. --- server.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'server.c') diff --git a/server.c b/server.c index ff2411c7..ab1d90c2 100644 --- a/server.c +++ b/server.c @@ -1,4 +1,4 @@ -/* $Id: server.c,v 1.51 2008-06-04 05:47:46 nicm Exp $ */ +/* $Id: server.c,v 1.52 2008-06-04 16:46:23 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -415,31 +415,40 @@ server_handle_window(struct window *w) { struct session *s; u_int i; + int action; window_parse(w); - if (!(w->flags & WINDOW_BELL)) + if (!(w->flags & (WINDOW_BELL|WINDOW_ACTIVITY))) return; for (i = 0; i < ARRAY_LENGTH(&sessions); i++) { s = ARRAY_ITEM(&sessions, i); if (s == NULL || !session_has(s, w)) continue; - session_addbell(s, w); - - switch (options_get_number(&s->options, "bell-action")) { - case BELL_ANY: - tty_write_session(s, TTY_CHARACTER, '\007'); - break; - case BELL_CURRENT: - if (s->curw->window == w) + + if (w->flags & WINDOW_BELL) { + session_alert_add(s, w, WINDOW_BELL); + + action = options_get_number(&s->options, "bell-action"); + switch (action) { + case BELL_ANY: + tty_write_session(s, TTY_CHARACTER, '\007'); + break; + case BELL_CURRENT: + if (s->curw->window != w) + break; tty_write_session(s, TTY_CHARACTER, '\007'); - break; + break; + } } + + if (w->flags & WINDOW_ACTIVITY) + session_alert_add(s, w, WINDOW_ACTIVITY); } server_status_window(w); - w->flags &= ~WINDOW_BELL; + w->flags &= ~(WINDOW_BELL|WINDOW_ACTIVITY); } /* Lost window: move clients on to next window. */ -- cgit