diff options
author | Kevin Smith <git@kismith.co.uk> | 2012-04-26 16:52:12 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2012-04-26 16:52:12 (GMT) |
commit | bc08209eedf8a8a9f2506420384201e2bd0035d4 (patch) | |
tree | eafae0f103389d6e1f1511dfe363b39395a2e4f2 /Swift/Controllers/Chat/ChatControllerBase.cpp | |
parent | 4a1f206b0f8d4926b3a61cc8d7aad217761e52f6 (diff) | |
download | swift-contrib-bc08209eedf8a8a9f2506420384201e2bd0035d4.zip swift-contrib-bc08209eedf8a8a9f2506420384201e2bd0035d4.tar.bz2 |
Only include targeted messages in the Chats view count for MUCs.
Resolves: #935
Diffstat (limited to 'Swift/Controllers/Chat/ChatControllerBase.cpp')
-rw-r--r-- | Swift/Controllers/Chat/ChatControllerBase.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Swift/Controllers/Chat/ChatControllerBase.cpp b/Swift/Controllers/Chat/ChatControllerBase.cpp index 16ff885..583a102 100644 --- a/Swift/Controllers/Chat/ChatControllerBase.cpp +++ b/Swift/Controllers/Chat/ChatControllerBase.cpp @@ -92,6 +92,7 @@ void ChatControllerBase::setAvailableServerFeatures(boost::shared_ptr<DiscoInfo> void ChatControllerBase::handleAllMessagesRead() { if (!unreadMessages_.empty()) { + targetedUnreadMessages_.clear(); foreach (boost::shared_ptr<StanzaEvent> stanzaEvent, unreadMessages_) { stanzaEvent->conclude(); } @@ -102,7 +103,7 @@ void ChatControllerBase::handleAllMessagesRead() { } int ChatControllerBase::getUnreadCount() { - return unreadMessages_.size(); + return targetedUnreadMessages_.size(); } void ChatControllerBase::handleSendMessageRequest(const std::string &body, bool isCorrectionMessage) { @@ -181,6 +182,9 @@ void ChatControllerBase::handleIncomingMessage(boost::shared_ptr<MessageEvent> m preHandleIncomingMessage(messageEvent); if (messageEvent->isReadable() && !messageEvent->getConcluded()) { unreadMessages_.push_back(messageEvent); + if (messageEvent->targetsMe()) { + targetedUnreadMessages_.push_back(messageEvent); + } } boost::shared_ptr<Message> message = messageEvent->getStanza(); std::string body = message->getBody(); |