Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'skypeweb/skypeweb_messages.c')
-rw-r--r--skypeweb/skypeweb_messages.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/skypeweb/skypeweb_messages.c b/skypeweb/skypeweb_messages.c
index d100a60..3bb9133 100644
--- a/skypeweb/skypeweb_messages.c
+++ b/skypeweb/skypeweb_messages.c
@@ -1226,6 +1226,7 @@ skypeweb_get_vdms_token(SkypeWebAccount *sa)
skypeweb_fetch_url_request(sa, messages_url, TRUE, NULL, FALSE, request, FALSE, 524288, skypeweb_got_vdms_token, sa);
g_free(request);
+
}
@@ -1321,12 +1322,21 @@ skypeweb_set_status(PurpleAccount *account, PurpleStatus *status)
void
skypeweb_set_idle(PurpleConnection *pc, int time)
{
+ const gchar *status_id;
+ PurpleStatus *status;
+
SkypeWebAccount *sa = purple_connection_get_protocol_data(pc);
- if (time < 30) {
- skypeweb_set_statusid(sa, "Online");
- } else {
- skypeweb_set_statusid(sa, "Idle");
+ status = purple_account_get_active_status(purple_connection_get_account(pc));
+ status_id = purple_status_get_id(status);
+
+ /* Only go idle if active status is online */
+ if (!strcmp(status_id, SKYPEWEB_STATUS_ONLINE)) {
+ if (time < 30) {
+ skypeweb_set_statusid(sa, SKYPEWEB_STATUS_ONLINE);
+ } else {
+ skypeweb_set_statusid(sa, SKYPEWEB_STATUS_IDLE);
+ }
}
}