diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:18:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:18:39 +0000 |
commit | fff5217f02d91268ce90c8c05665602c059faaef (patch) | |
tree | 2ba24d32dc96eafe7ed0a85269548e76796d849d /src/fe-text/mainwindow-activity.c | |
parent | Initial commit. (diff) | |
download | irssi-fff5217f02d91268ce90c8c05665602c059faaef.tar.xz irssi-fff5217f02d91268ce90c8c05665602c059faaef.zip |
Adding upstream version 1.4.5.upstream/1.4.5upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/fe-text/mainwindow-activity.c')
-rw-r--r-- | src/fe-text/mainwindow-activity.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/fe-text/mainwindow-activity.c b/src/fe-text/mainwindow-activity.c new file mode 100644 index 0000000..d3759ac --- /dev/null +++ b/src/fe-text/mainwindow-activity.c @@ -0,0 +1,62 @@ +/* + mainwindow-activity.c : irssi + + Copyright (C) 2000 Timo Sirainen + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "module.h" +#include <irssi/src/core/signals.h> +#include <irssi/src/core/settings.h> + +#include <irssi/src/fe-text/gui-windows.h> + +/* Don't send window activity if window is already visible in + another mainwindow */ +static void sig_activity(WINDOW_REC *window) +{ + GSList *tmp; + + if (!is_window_visible(window) || window->data_level == 0) + return; + + if (!settings_get_bool("activity_hide_visible")) + return; + + window->data_level = 0; + g_free_and_null(window->hilight_color); + + for (tmp = window->items; tmp != NULL; tmp = tmp->next) { + WI_ITEM_REC *item = tmp->data; + + item->data_level = 0; + g_free_and_null(item->hilight_color); + } + signal_stop(); +} + +void mainwindow_activity_init(void) +{ + settings_add_bool("lookandfeel", "activity_hide_visible", TRUE); + signal_add_first("window hilight", (SIGNAL_FUNC) sig_activity); + signal_add_first("window activity", (SIGNAL_FUNC) sig_activity); +} + +void mainwindow_activity_deinit(void) +{ + signal_remove("window hilight", (SIGNAL_FUNC) sig_activity); + signal_remove("window activity", (SIGNAL_FUNC) sig_activity); +} |