summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-10-28 07:33:43 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-10-28 07:33:43 (GMT)
commitb0b175c73f8ce9f693adeb1137a6a50a9ec3e101 (patch)
tree370033076c0509e360d259ab87969f174d596e63 /Swiften/Presence/PresenceOracle.cpp
parent6ff7ff9f1f028ce21b58e19367b4710ba155d6bd (diff)
downloadswift-b0b175c73f8ce9f693adeb1137a6a50a9ec3e101.zip
swift-b0b175c73f8ce9f693adeb1137a6a50a9ec3e101.tar.bz2
Correctly mark roster items with the highest priority status.
Resolves: #668
Diffstat (limited to 'Swiften/Presence/PresenceOracle.cpp')
-rw-r--r--Swiften/Presence/PresenceOracle.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/Swiften/Presence/PresenceOracle.cpp b/Swiften/Presence/PresenceOracle.cpp
index 83bbbf7..fb4be3f 100644
--- a/Swiften/Presence/PresenceOracle.cpp
+++ b/Swiften/Presence/PresenceOracle.cpp
@@ -52,7 +52,11 @@ void PresenceOracle::handleIncomingPresence(Presence::ref presence) {
/* Don't have a bare-JID only offline presence once there are available presences */
jidMap.erase(bareJID);
}
- jidMap[passedPresence->getFrom()] = passedPresence;
+ if (passedPresence->getType() == Presence::Unavailable && jidMap.size() > 1) {
+ jidMap.erase(passedPresence->getFrom());
+ } else {
+ jidMap[passedPresence->getFrom()] = passedPresence;
+ }
entries_[bareJID] = jidMap;
onPresenceChange(passedPresence);
}