From 5498152b4c9537742019dd45db72c88d7e3dc70c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Wed, 25 Nov 2009 22:34:08 +0100
Subject: Avoid having unreadable events added to queue.


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
@@ -380,6 +380,9 @@ void MainController::handleJoinMUCRequest(const JID &muc, const String &nick) {
 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) {
@@ -396,11 +399,7 @@ void MainController::handleIncomingMessage(boost::shared_ptr<Message> message) {
 	
 	//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) {
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
@@ -30,7 +30,6 @@ namespace Swift {
 
 		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. */
-- 
cgit v0.10.2-6-g49f6