From 9c89de33df2cd52f19f067dff438547d27a81fe7 Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Sun, 27 Dec 2009 09:48:13 +0000 Subject: Don't join MUCs a second time. Resolves: #273 diff --git a/Swift/Controllers/ChatsManager.cpp b/Swift/Controllers/ChatsManager.cpp index e64967c..a805802 100644 --- a/Swift/Controllers/ChatsManager.cpp +++ b/Swift/Controllers/ChatsManager.cpp @@ -120,8 +120,14 @@ void ChatsManager::rebindControllerJID(const JID& from, const JID& to) { } void ChatsManager::handleJoinMUCRequest(const JID &muc, const String &nick) { - mucControllers_[muc] = new MUCController(jid_, muc, nick, stanzaChannel_, presenceSender_, iqRouter_, chatWindowFactory_, treeWidgetFactory_, presenceOracle_, avatarManager_); - mucControllers_[muc]->setAvailableServerFeatures(serverDiscoInfo_); + std::map::iterator it = mucControllers_.find(muc); + if (it != mucControllers_.end()) { + //FIXME: What's correct behaviour here? + } else { + mucControllers_[muc] = new MUCController(jid_, muc, nick, stanzaChannel_, presenceSender_, iqRouter_, chatWindowFactory_, treeWidgetFactory_, presenceOracle_, avatarManager_); + mucControllers_[muc]->setAvailableServerFeatures(serverDiscoInfo_); + } + mucControllers_[muc]->activateChatWindow(); } void ChatsManager::handleIncomingMessage(boost::shared_ptr message) { -- cgit v0.10.2-6-g49f6