diff options
Diffstat (limited to 'Swift/Controllers/MainController.cpp')
| -rw-r--r-- | Swift/Controllers/MainController.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index d94cadc..e030a31 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -377,12 +377,15 @@ void MainController::handleJoinMUCRequest(const JID &muc, const String &nick) { mucControllers_[muc]->setAvailableServerFeatures(serverDiscoInfo_); } void MainController::handleIncomingMessage(boost::shared_ptr<Message> message) { JID jid = message->getFrom(); boost::shared_ptr<MessageEvent> event(new MessageEvent(message)); + if (!event->isReadable()) { + return; + } // Try to deliver it to a MUC if (message->getType() == Message::Groupchat || message->getType() == Message::Error) { std::map<JID, MUCController*>::iterator i = mucControllers_.find(jid.toBare()); if (i != mucControllers_.end()) { i->second->handleIncomingMessage(event); @@ -393,17 +396,13 @@ void MainController::handleIncomingMessage(boost::shared_ptr<Message> message) { return; } } //if not a mucroom eventController_->handleIncomingEvent(event); - - // FIXME: This logic should go into a chat manager - if (event->isReadable()) { - getChatController(jid)->handleIncomingMessage(event); - } + getChatController(jid)->handleIncomingMessage(event); } void MainController::handleServerDiscoInfoResponse(boost::shared_ptr<DiscoInfo> info, const boost::optional<ErrorPayload>& error) { if (!error) { serverDiscoInfo_ = info; foreach (JIDChatControllerPair pair, chatControllers_) { |
Swift