summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Pösel <robyer@seznam.cz>2013-01-05 10:37:09 +0000
committerRobert Pösel <robyer@seznam.cz>2013-01-05 10:37:09 +0000
commitedfcad0729bdf7fb38d64d59febc21118cb37521 (patch)
tree96b37acef9420216445b7acf248a82755319ebdd
parent57833f44a17d382aa63d6b916a32197845db020d (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.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;
}