diff options
author | Kevin Smith <git@kismith.co.uk> | 2011-03-10 09:03:24 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2011-03-10 09:03:24 (GMT) |
commit | 3ff52013d810f94b6095e93f550f58133e2df239 (patch) | |
tree | 93038c34fccfef16a448e3fbc8d2b790603d807b | |
parent | 912dbcf226e361f23b82a77372038865ffebbd02 (diff) | |
download | swift-3ff52013d810f94b6095e93f550f58133e2df239.zip swift-3ff52013d810f94b6095e93f550f58133e2df239.tar.bz2 |
(Really this time) fix unread messages.
I hope, anyway.
Resolves: #775
-rw-r--r-- | Swift/Controllers/EventWindowController.cpp | 8 | ||||
-rw-r--r-- | Swift/Controllers/XMPPEvents/EventController.cpp | 6 |
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); + } } } |