summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2011-03-10 09:03:24 (GMT)
committerKevin Smith <git@kismith.co.uk>2011-03-10 09:03:24 (GMT)
commit3ff52013d810f94b6095e93f550f58133e2df239 (patch)
tree93038c34fccfef16a448e3fbc8d2b790603d807b
parent912dbcf226e361f23b82a77372038865ffebbd02 (diff)
downloadswift-contrib-3ff52013d810f94b6095e93f550f58133e2df239.zip
swift-contrib-3ff52013d810f94b6095e93f550f58133e2df239.tar.bz2
(Really this time) fix unread messages.
I hope, anyway. Resolves: #775
-rw-r--r--Swift/Controllers/EventWindowController.cpp8
-rw-r--r--Swift/Controllers/XMPPEvents/EventController.cpp6
2 files changed, 9 insertions, 5 deletions
diff --git a/Swift/Controllers/EventWindowController.cpp b/Swift/Controllers/EventWindowController.cpp
index a6ff061..fbe9a8a 100644
--- a/Swift/Controllers/EventWindowController.cpp
+++ b/Swift/Controllers/EventWindowController.cpp
@@ -24,8 +24,12 @@ EventWindowController::~EventWindowController() {
}
void EventWindowController::handleEventQueueEventAdded(boost::shared_ptr<StanzaEvent> event) {
- event->onConclusion.connect(boost::bind(&EventWindowController::handleEventConcluded, this, event));
- window_->addEvent(event, event->getConcluded());
+ if (event->getConcluded()) {
+ handleEventConcluded(event);
+ } else {
+ event->onConclusion.connect(boost::bind(&EventWindowController::handleEventConcluded, this, event));
+ window_->addEvent(event, true);
+ }
}
void EventWindowController::handleEventConcluded(boost::shared_ptr<StanzaEvent> event) {
diff --git a/Swift/Controllers/XMPPEvents/EventController.cpp b/Swift/Controllers/XMPPEvents/EventController.cpp
index 157be86..7f8f216 100644
--- a/Swift/Controllers/XMPPEvents/EventController.cpp
+++ b/Swift/Controllers/XMPPEvents/EventController.cpp
@@ -30,12 +30,12 @@ void EventController::handleIncomingEvent(boost::shared_ptr<StanzaEvent> sourceE
boost::shared_ptr<ErrorEvent> errorEvent = boost::dynamic_pointer_cast<ErrorEvent>(sourceEvent);
if ((messageEvent && messageEvent->isReadable()) || subscriptionEvent || errorEvent) {
events_.push_back(sourceEvent);
- if (sourceEvent->getConcluded()) {
- handleEventConcluded(sourceEvent);
- }
sourceEvent->onConclusion.connect(boost::bind(&EventController::handleEventConcluded, this, sourceEvent));
onEventQueueLengthChange(events_.size());
onEventQueueEventAdded(sourceEvent);
+ if (sourceEvent->getConcluded()) {
+ handleEventConcluded(sourceEvent);
+ }
}
}