From 831794e150d890a64fc889887334accec4dd822a Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Mon, 15 Oct 2012 13:46:23 +0200 Subject: [PATCH] Only omit alerts when we're actually away --- src/common/text.c | 12 ++++++------ src/fe-gtk/fe-gtk.c | 2 +- src/fe-gtk/plugin-tray.c | 18 +++++++++--------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/common/text.c b/src/common/text.c index 20e4fd45..6736d632 100644 --- a/src/common/text.c +++ b/src/common/text.c @@ -2203,9 +2203,9 @@ text_emit (int index, session *sess, char *a, char *b, char *c, char *d) case XP_TE_DPRIVMSG: case XP_TE_PRIVACTION: case XP_TE_DPRIVACTION: - if (chanopt_is_set_a (prefs.input_beep_priv, sess->alert_beep) && !prefs.away_omit_alerts) + if (chanopt_is_set_a (prefs.input_beep_priv, sess->alert_beep) && (!prefs.away_omit_alerts || !sess->server->is_away)) sound_beep (sess); - if (chanopt_is_set_a (prefs.input_flash_priv, sess->alert_taskbar) && !prefs.away_omit_alerts) + if (chanopt_is_set_a (prefs.input_flash_priv, sess->alert_taskbar) && (!prefs.away_omit_alerts || !sess->server->is_away)) fe_flash_window (sess); /* why is this one different? because of plugin-tray.c's hooks! ugly */ if (sess->alert_tray == SET_ON) @@ -2215,9 +2215,9 @@ text_emit (int index, session *sess, char *a, char *b, char *c, char *d) /* ===Highlighted message=== */ case XP_TE_HCHANACTION: case XP_TE_HCHANMSG: - if (chanopt_is_set_a (prefs.input_beep_hilight, sess->alert_beep) && !prefs.away_omit_alerts) + if (chanopt_is_set_a (prefs.input_beep_hilight, sess->alert_beep) && (!prefs.away_omit_alerts || !sess->server->is_away)) sound_beep (sess); - if (chanopt_is_set_a (prefs.input_flash_hilight, sess->alert_taskbar) && !prefs.away_omit_alerts) + if (chanopt_is_set_a (prefs.input_flash_hilight, sess->alert_taskbar) && (!prefs.away_omit_alerts || !sess->server->is_away)) fe_flash_window (sess); if (sess->alert_tray == SET_ON) fe_tray_set_icon (FE_ICON_MESSAGE); @@ -2226,9 +2226,9 @@ text_emit (int index, session *sess, char *a, char *b, char *c, char *d) /* ===Channel message=== */ case XP_TE_CHANACTION: case XP_TE_CHANMSG: - if (chanopt_is_set_a (prefs.input_beep_chans, sess->alert_beep) && !prefs.away_omit_alerts) + if (chanopt_is_set_a (prefs.input_beep_chans, sess->alert_beep) && (!prefs.away_omit_alerts || !sess->server->is_away)) sound_beep (sess); - if (chanopt_is_set_a (prefs.input_flash_chans, sess->alert_taskbar) && !prefs.away_omit_alerts) + if (chanopt_is_set_a (prefs.input_flash_chans, sess->alert_taskbar) && (!prefs.away_omit_alerts || !sess->server->is_away)) fe_flash_window (sess); if (sess->alert_tray == SET_ON) fe_tray_set_icon (FE_ICON_MESSAGE); diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c index f7264f73..a523d63b 100644 --- a/src/fe-gtk/fe-gtk.c +++ b/src/fe-gtk/fe-gtk.c @@ -587,7 +587,7 @@ fe_set_hilight (struct session *sess) if (sess->gui->is_tab) fe_set_tab_color (sess, 3); /* set tab to blue */ - if (prefs.input_flash_hilight && !prefs.away_omit_alerts) + if (prefs.input_flash_hilight && (!prefs.away_omit_alerts || !sess->server->is_away)) fe_flash_window (sess); /* taskbar flash */ } diff --git a/src/fe-gtk/plugin-tray.c b/src/fe-gtk/plugin-tray.c index 0897f423..0437cd41 100644 --- a/src/fe-gtk/plugin-tray.c +++ b/src/fe-gtk/plugin-tray.c @@ -578,7 +578,7 @@ tray_hilight_cb (char *word[], void *userdata) /*if (tray_status == TS_HIGHLIGHT) return XCHAT_EAT_NONE;*/ - if (prefs.input_tray_hilight && !prefs.away_omit_alerts) + if (prefs.input_tray_hilight && (!prefs.away_omit_alerts || tray_find_away_status () != 1)) { tray_set_flash (ICON_HILIGHT); @@ -592,7 +592,7 @@ tray_hilight_cb (char *word[], void *userdata) tray_hilight_count, word[1], xchat_get_info (ph, "channel")); } - if (prefs.input_balloon_hilight && !prefs.away_omit_alerts) + if (prefs.input_balloon_hilight && (!prefs.away_omit_alerts || tray_find_away_status () != 1)) tray_set_balloonf (word[2], _(DISPLAY_NAME": Highlighted message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); @@ -605,7 +605,7 @@ tray_message_cb (char *word[], void *userdata) if (/*tray_status == TS_MESSAGE ||*/ tray_status == TS_HIGHLIGHT) return XCHAT_EAT_NONE; - if (prefs.input_tray_chans && !prefs.away_omit_alerts) + if (prefs.input_tray_chans && (!prefs.away_omit_alerts || tray_find_away_status () != 1)) { tray_set_flash (ICON_MSG); @@ -617,7 +617,7 @@ tray_message_cb (char *word[], void *userdata) tray_set_tipf (_(DISPLAY_NAME": %u new public messages."), tray_pub_count); } - if (prefs.input_balloon_chans && !prefs.away_omit_alerts) + if (prefs.input_balloon_chans && (!prefs.away_omit_alerts || tray_find_away_status () != 1)) tray_set_balloonf (word[2], _(DISPLAY_NAME": New public message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); @@ -646,7 +646,7 @@ tray_priv (char *from, char *text) tray_set_tipf (_(DISPLAY_NAME": %u private messages, latest from: %s (%s)"), tray_priv_count, from, network); - if (prefs.input_balloon_priv && !prefs.away_omit_alerts) + if (prefs.input_balloon_priv && (!prefs.away_omit_alerts || tray_find_away_status () != 1)) tray_set_balloonf (text, _(DISPLAY_NAME": Private message from: %s (%s)"), from, network); } @@ -657,7 +657,7 @@ tray_priv_cb (char *word[], void *userdata) /*if (tray_status == TS_HIGHLIGHT) return XCHAT_EAT_NONE;*/ - if (prefs.input_tray_priv && !prefs.away_omit_alerts) + if (prefs.input_tray_priv && (!prefs.away_omit_alerts || tray_find_away_status () != 1)) tray_priv (word[1], word[2]); return XCHAT_EAT_NONE; @@ -669,7 +669,7 @@ tray_invited_cb (char *word[], void *userdata) /*if (tray_status == TS_HIGHLIGHT) return XCHAT_EAT_NONE;*/ - if (prefs.input_tray_priv && !prefs.away_omit_alerts) + if (prefs.input_tray_priv && (!prefs.away_omit_alerts || tray_find_away_status () != 1)) tray_priv (word[2], "Invited"); return XCHAT_EAT_NONE; @@ -687,7 +687,7 @@ tray_dcc_cb (char *word[], void *userdata) if (!network) network = xchat_get_info (ph, "server"); - if (prefs.input_tray_priv && !prefs.away_omit_alerts) + if (prefs.input_tray_priv && (!prefs.away_omit_alerts || tray_find_away_status () != 1)) { tray_set_flash (ICON_FILE); @@ -700,7 +700,7 @@ tray_dcc_cb (char *word[], void *userdata) tray_file_count, word[1], network); } - if (prefs.input_balloon_priv && !prefs.away_omit_alerts) + if (prefs.input_balloon_priv && (!prefs.away_omit_alerts || tray_find_away_status () != 1)) tray_set_balloonf ("", _(DISPLAY_NAME": File offer from: %s (%s)"), word[1], network);