diff options
Diffstat (limited to 'Swift/Controllers/Chat/ChatsManager.cpp')
| -rw-r--r-- | Swift/Controllers/Chat/ChatsManager.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/Swift/Controllers/Chat/ChatsManager.cpp b/Swift/Controllers/Chat/ChatsManager.cpp index 2fc5a43..6bd7597 100644 --- a/Swift/Controllers/Chat/ChatsManager.cpp +++ b/Swift/Controllers/Chat/ChatsManager.cpp @@ -133,7 +133,7 @@ void ChatsManager::handleUIEvent(boost::shared_ptr<UIEvent> event) {   */  void ChatsManager::handlePresenceChange(boost::shared_ptr<Presence> newPresence) {  	if (mucRegistry_->isMUC(newPresence->getFrom().toBare())) return; -	if (newPresence->getType() != Presence::Unavailable) return; +	//if (newPresence->getType() != Presence::Unavailable) return;  	JID fullJID(newPresence->getFrom());  	std::map<JID, ChatController*>::iterator it = chatControllers_.find(fullJID);  	if (it == chatControllers_.end()) return; @@ -218,6 +218,12 @@ ChatController* ChatsManager::getChatControllerIfExists(const JID &contact) {  		if (chatControllers_.find(bare) != chatControllers_.end()) {  			rebindControllerJID(bare, contact);  		} else { +			foreach (JIDChatControllerPair pair, chatControllers_) { +				if (pair.first.toBare() == contact.toBare()) { +					rebindControllerJID(pair.first, contact); +					return chatControllers_[contact]; +				} +			}  			return NULL;  		}  	}  | 
 Swift