diff --git a/src/networkpluginserver.cpp b/src/networkpluginserver.cpp index 28275c63c68e9f948969a7d47ea36acc554b2829..bcea34f7b2b9173004da64e7b81502bc7a5131f7 100644 --- a/src/networkpluginserver.cpp +++ b/src/networkpluginserver.cpp @@ -542,6 +542,10 @@ void NetworkPluginServer::handleBuddyChangedPayload(const std::string &data) { buddy->handleBuddyChanged(); } else { + if (payload.buddyname() == user->getUserInfo().uin) { + return; + } + std::vector groups; for (int i = 0; i < payload.group_size(); i++) { groups.push_back(payload.group(i)); @@ -556,6 +560,7 @@ void NetworkPluginServer::handleBuddyChangedPayload(const std::string &data) { delete buddy; return; } + buddy->setStatus(Swift::StatusShow((Swift::StatusShow::Type) payload.status()), payload.statusmessage()); buddy->setIconHash(payload.iconhash()); buddy->setBlocked(payload.blocked());