--- a/hangouts_events.c Mon Jan 29 09:01:29 2018 +1300
+++ b/hangouts_events.c Tue Feb 06 11:20:40 2018 +1300
@@ -405,6 +405,8 @@
status_id = purple_primitive_get_id_from_type(PURPLE_STATUS_AWAY);
status_id = purple_primitive_get_id_from_type(PURPLE_STATUS_EXTENDED_AWAY);
+ } else if (purple_account_get_bool(ha->account, "treat_invisible_as_offline", FALSE)) { // Hangouts contacts are never really unreachable, just invisible
status_id = purple_primitive_get_id_from_type(PURPLE_STATUS_INVISIBLE);
--- a/libhangouts.c Mon Jan 29 09:01:29 2018 +1300
+++ b/libhangouts.c Tue Feb 06 11:20:40 2018 +1300
@@ -87,6 +87,9 @@
option = purple_account_option_bool_new(N_("Un-Googlify URLs"), "unravel_google_url", FALSE);
account_options = g_list_append(account_options, option);
+ option = purple_account_option_bool_new(N_("Treat invisible users as offline"), "treat_invisible_as_offline", FALSE); + account_options = g_list_append(account_options, option); @@ -477,6 +480,9 @@
status = purple_status_type_new_full(PURPLE_STATUS_OFFLINE, NULL, NULL, TRUE, TRUE, FALSE);
types = g_list_append(types, status);
+ status = purple_status_type_new_with_attrs(PURPLE_STATUS_OFFLINE, "gone", NULL, FALSE, FALSE, FALSE, "message", _("Mood"), purple_value_new(PURPLE_TYPE_STRING), NULL); + types = g_list_append(types, status); status = purple_status_type_new_with_attrs(PURPLE_STATUS_INVISIBLE, NULL, NULL, FALSE, FALSE, FALSE, "message", _("Mood"), purple_value_new(PURPLE_TYPE_STRING), NULL);
types = g_list_append(types, status);