diff options
author | Robert Pösel <robyer@seznam.cz> | 2013-01-05 10:37:09 +0000 |
---|---|---|
committer | Robert Pösel <robyer@seznam.cz> | 2013-01-05 10:37:09 +0000 |
commit | edfcad0729bdf7fb38d64d59febc21118cb37521 (patch) | |
tree | 96b37acef9420216445b7acf248a82755319ebdd | |
parent | 57833f44a17d382aa63d6b916a32197845db020d (diff) |
Skype: Fixed behavior of setting unsupported statuses
git-svn-id: http://svn.miranda-ng.org/main/trunk@2972 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r-- | protocols/Skype/src/skype_proto.cpp | 21 |
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;
}
|