Add option for omitting alerts while focused

This commit is contained in:
TingPing 2013-04-13 23:03:54 -04:00
parent a996549577
commit e67371d269
5 changed files with 8 additions and 9 deletions

View File

@ -426,6 +426,7 @@ const struct prefs vars[] =
{"gui_dialog_left", P_OFFINT (hex_gui_dialog_left), TYPE_INT},
{"gui_dialog_top", P_OFFINT (hex_gui_dialog_top), TYPE_INT},
{"gui_dialog_width", P_OFFINT (hex_gui_dialog_width), TYPE_INT},
{"gui_focus_omitalerts", P_OFFINT (hex_gui_focus_omitalerts), TYPE_BOOL},
{"gui_hide_menu", P_OFFINT (hex_gui_hide_menu), TYPE_BOOL},
{"gui_input_icon", P_OFFINT (hex_gui_input_icon), TYPE_BOOL},
{"gui_input_nick", P_OFFINT (hex_gui_input_nick), TYPE_BOOL},

View File

@ -150,6 +150,7 @@ struct hexchatprefs
unsigned int hex_gui_autoopen_recv;
unsigned int hex_gui_autoopen_send;
unsigned int hex_gui_compact;
unsigned int hex_gui_focus_omitalerts;
unsigned int hex_gui_hide_menu;
unsigned int hex_gui_input_icon;
unsigned int hex_gui_input_nick;

View File

@ -669,7 +669,7 @@ fe_print_text (struct session *sess, char *text, time_t stamp)
void
fe_beep (session *sess)
{
if (fe_gui_info (sess, 0) != 1)
if (!prefs.hex_gui_focus_omitalerts || !fe_gui_info (sess, 0) == 1)
gdk_beep ();
}

View File

@ -167,7 +167,8 @@ fe_tray_set_balloon (const char *title, const char *text)
/* no balloons if the window is focused */
ws = tray_get_window_status ();
if (ws == WS_FOCUSED)
if ((prefs.hex_away_omit_alerts && hexchat_get_info(ph, "away")) ||
(prefs.hex_gui_focus_omitalerts && ws == WS_FOCUSED))
return;
/* bit 1 of flags means "no balloons unless hidden/iconified" */
@ -693,9 +694,6 @@ tray_hilight_cb (char *word[], void *userdata)
/*if (tray_status == TS_HIGHLIGHT)
return HEXCHAT_EAT_NONE;*/
if (prefs.hex_away_omit_alerts && hexchat_get_info(ph, "away"))
return HEXCHAT_EAT_NONE;
if (prefs.hex_input_tray_hilight)
{
tray_set_flash (ICON_HILIGHT);
@ -723,9 +721,6 @@ tray_message_cb (char *word[], void *userdata)
if (/*tray_status == TS_MESSAGE ||*/ tray_status == TS_HIGHLIGHT)
return HEXCHAT_EAT_NONE;
if (prefs.hex_away_omit_alerts && hexchat_get_info(ph, "away"))
return HEXCHAT_EAT_NONE;
if (prefs.hex_input_tray_chans)
{
tray_set_flash (ICON_MSG);
@ -778,7 +773,7 @@ tray_priv_cb (char *word[], void *userdata)
/*if (tray_status == TS_HIGHLIGHT)
return HEXCHAT_EAT_NONE;*/
if (prefs.hex_input_tray_priv && (!prefs.hex_away_omit_alerts || !hexchat_get_info(ph, "away")))
if (prefs.hex_input_tray_priv)
tray_priv (word[1], word[2]);
return HEXCHAT_EAT_NONE;

View File

@ -431,6 +431,7 @@ static const setting alert_settings[] =
{ST_3OGGLE, N_("Make a beep sound on:"), 0, 0, (void *)beeplist, 0},
{ST_TOGGLE, N_("Omit alerts when marked as being away"), P_OFFINTNL(hex_away_omit_alerts), 0, 0, 0},
{ST_TOGGLE, N_("Omit alerts while the window is focused"), P_OFFINTNL(hex_gui_focus_omitalerts), 0, 0, 0},
{ST_HEADER, N_("Tray Behavior"), 0, 0, 0},
#ifdef WIN32
@ -466,6 +467,7 @@ static const setting alert_settings_unity[] =
{ST_3OGGLE, N_("Make a beep sound on:"), 0, 0, (void *)beeplist, 0},
{ST_TOGGLE, N_("Omit alerts when marked as being away"), P_OFFINTNL(hex_away_omit_alerts), 0, 0, 0},
{ST_TOGGLE, N_("Omit alerts while the window is focused"), P_OFFINTNL(hex_gui_focus_omitalerts), 0, 0, 0},
{ST_HEADER, N_("Highlighted Messages"),0,0,0},
{ST_LABEL, N_("Highlighted messages are ones where your nickname is mentioned, but also:"), 0, 0, 0, 1},