summaryrefslogtreecommitdiff
path: root/protocols/Skype/src
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Skype/src')
-rw-r--r--protocols/Skype/src/skype_proto.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/protocols/Skype/src/skype_proto.cpp b/protocols/Skype/src/skype_proto.cpp
index 907a36047a..f9a94fc96a 100644
--- a/protocols/Skype/src/skype_proto.cpp
+++ b/protocols/Skype/src/skype_proto.cpp
@@ -258,6 +258,21 @@ int __cdecl CSkypeProto::SetApparentMode( HANDLE hContact, int mode ) { retur
int CSkypeProto::SetStatus(int new_status)
{
+ switch (new_status)
+ {
+ case ID_STATUS_OCCUPIED:
+ new_status = ID_STATUS_DND;
+ break;
+ case ID_STATUS_FREECHAT:
+ new_status = ID_STATUS_ONLINE;
+ break;
+ case ID_STATUS_ONTHEPHONE:
+ case ID_STATUS_OUTTOLUNCH:
+ case ID_STATUS_NA:
+ new_status = ID_STATUS_AWAY;
+ break;
+ }
+
if (new_status == this->m_iStatus)
return 0;
@@ -287,11 +302,11 @@ int CSkypeProto::SetStatus(int new_status)
{
CContact::AVAILABILITY availability = this->MirandaToSkypeStatus(new_status);
if (availability != CContact::UNKNOWN)
+ {
this->account->SetAvailability(availability);
-
- this->m_iStatus = new_status;
+ this->m_iStatus = new_status;
+ }
}
-
break;
}