1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

Only set autoaway when status is "online" or "chat"

fixes #122
This commit is contained in:
James Booth 2013-04-27 22:39:51 +01:00
parent 070c3ae6cc
commit e02ab52a4e

View File

@ -482,37 +482,40 @@ static void
_handle_idle_time() _handle_idle_time()
{ {
gint prefs_time = prefs_get_autoaway_time() * 60000; gint prefs_time = prefs_get_autoaway_time() * 60000;
resource_presence_t current_presence = accounts_get_last_presence(jabber_get_account_name());
unsigned long idle_ms = ui_get_idle_time(); unsigned long idle_ms = ui_get_idle_time();
if (!idle) { if (!idle) {
if (idle_ms >= prefs_time) { if ((current_presence == RESOURCE_ONLINE) || (current_presence == RESOURCE_CHAT)) {
idle = TRUE; if (idle_ms >= prefs_time) {
idle = TRUE;
// handle away mode // handle away mode
if (strcmp(prefs_get_string(PREF_AUTOAWAY_MODE), "away") == 0) { if (strcmp(prefs_get_string(PREF_AUTOAWAY_MODE), "away") == 0) {
presence_update(RESOURCE_AWAY, prefs_get_string(PREF_AUTOAWAY_MESSAGE), 0); presence_update(RESOURCE_AWAY, prefs_get_string(PREF_AUTOAWAY_MESSAGE), 0);
if (prefs_get_string(PREF_AUTOAWAY_MESSAGE) != NULL) { if (prefs_get_string(PREF_AUTOAWAY_MESSAGE) != NULL) {
int pri = int pri =
accounts_get_priority_for_presence_type(jabber_get_account_name(), accounts_get_priority_for_presence_type(jabber_get_account_name(),
RESOURCE_AWAY); RESOURCE_AWAY);
cons_show("Idle for %d minutes, status set to away (priority %d), \"%s\".", cons_show("Idle for %d minutes, status set to away (priority %d), \"%s\".",
prefs_get_autoaway_time(), pri, prefs_get_string(PREF_AUTOAWAY_MESSAGE)); prefs_get_autoaway_time(), pri, prefs_get_string(PREF_AUTOAWAY_MESSAGE));
title_bar_set_status(CONTACT_AWAY); title_bar_set_status(CONTACT_AWAY);
ui_current_page_off(); ui_current_page_off();
} else { } else {
int pri = int pri =
accounts_get_priority_for_presence_type(jabber_get_account_name(), accounts_get_priority_for_presence_type(jabber_get_account_name(),
RESOURCE_AWAY); RESOURCE_AWAY);
cons_show("Idle for %d minutes, status set to away (priority %d).", cons_show("Idle for %d minutes, status set to away (priority %d).",
prefs_get_autoaway_time(), pri); prefs_get_autoaway_time(), pri);
title_bar_set_status(CONTACT_AWAY); title_bar_set_status(CONTACT_AWAY);
ui_current_page_off(); ui_current_page_off();
}
// handle idle mode
} else if (strcmp(prefs_get_string(PREF_AUTOAWAY_MODE), "idle") == 0) {
presence_update(RESOURCE_ONLINE,
prefs_get_string(PREF_AUTOAWAY_MESSAGE), idle_ms / 1000);
} }
// handle idle mode
} else if (strcmp(prefs_get_string(PREF_AUTOAWAY_MODE), "idle") == 0) {
presence_update(RESOURCE_ONLINE,
prefs_get_string(PREF_AUTOAWAY_MESSAGE), idle_ms / 1000);
} }
} }