summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swift/Controllers/MainController.cpp9
-rw-r--r--Swiften/MUC/MUC.h1
2 files changed, 4 insertions, 6 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_) {
diff --git a/Swiften/MUC/MUC.h b/Swiften/MUC/MUC.h
index 2a327f4..c31f9ac 100644
--- a/Swiften/MUC/MUC.h
+++ b/Swiften/MUC/MUC.h
@@ -27,13 +27,12 @@ namespace Swift {
String getCurrentNick();
void part();
void handleIncomingMessage(boost::shared_ptr<Message> message);
public:
boost::signal<void (JoinResult)> onJoinComplete;
- boost::signal<void (boost::shared_ptr<Message>)> onMessageReceived;
boost::signal<void (boost::shared_ptr<Presence>)> onOccupantPresenceChange;
boost::signal<void (const MUCOccupant&)> onOccupantJoined;
/**Occupant, type, and reason. */
boost::signal<void (const MUCOccupant&, LeavingType, const String&)> onOccupantLeft;
private: