Ensure that timers are freed and activated when necessary
This commit is contained in:
parent
9e4c2ddc47
commit
215a164e57
@ -377,26 +377,50 @@ hexchat_reinit_timers (void)
|
||||
static int lag_check_tag = 0;
|
||||
static int away_tag = 0;
|
||||
|
||||
if (prefs.hex_notify_timeout)
|
||||
/* notify timeout */
|
||||
if (prefs.hex_notify_timeout && notify_tag == 0)
|
||||
{
|
||||
notify_tag = fe_timeout_add_seconds (prefs.hex_notify_timeout,
|
||||
notify_checklist, NULL);
|
||||
} else
|
||||
}
|
||||
else if (notify_tag != 0)
|
||||
{
|
||||
fe_timeout_remove (notify_tag);
|
||||
notify_tag = 0;
|
||||
}
|
||||
|
||||
fe_timeout_remove (away_tag);
|
||||
away_tag = fe_timeout_add_seconds (prefs.hex_away_timeout, away_check, NULL);
|
||||
/* away status tracking */
|
||||
if (prefs.hex_away_track && away_tag == 0)
|
||||
{
|
||||
away_tag = fe_timeout_add_seconds (prefs.hex_away_timeout, away_check, NULL);
|
||||
}
|
||||
else if (away_tag != 0)
|
||||
{
|
||||
fe_timeout_remove (away_tag);
|
||||
away_tag = 0;
|
||||
}
|
||||
|
||||
if (prefs.hex_gui_lagometer)
|
||||
/* lag-o-meter */
|
||||
if (prefs.hex_gui_lagometer && lag_check_update_tag == 0)
|
||||
{
|
||||
lag_check_update_tag = fe_timeout_add (500, hexchat_lag_check_update, NULL);
|
||||
lag_check_tag = fe_timeout_add_seconds (30, hexchat_lag_check, NULL);
|
||||
} else
|
||||
}
|
||||
else if (lag_check_update_tag != 0)
|
||||
{
|
||||
fe_timeout_remove (lag_check_update_tag);
|
||||
lag_check_update_tag = 0;
|
||||
}
|
||||
|
||||
/* network timeouts and lag-o-meter */
|
||||
if ((prefs.hex_net_ping_timeout != 0 || prefs.hex_gui_lagometer)
|
||||
&& lag_check_tag == 0)
|
||||
{
|
||||
lag_check_tag = fe_timeout_add_seconds (30, hexchat_lag_check, NULL);
|
||||
}
|
||||
else if (lag_check_tag != 0)
|
||||
{
|
||||
fe_timeout_remove (lag_check_tag);
|
||||
lag_check_tag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user