summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/MUC/MUCImpl.cpp')
-rw-r--r--Swiften/MUC/MUCImpl.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/Swiften/MUC/MUCImpl.cpp b/Swiften/MUC/MUCImpl.cpp
index 778c290..16e7421 100644
--- a/Swiften/MUC/MUCImpl.cpp
+++ b/Swiften/MUC/MUCImpl.cpp
@@ -263,13 +263,12 @@ void MUCImpl::handleIncomingPresence(Presence::ref presence) {
joinComplete_ = true;
if (ownMUCJID != presence->getFrom()) {
presenceSender->removeDirectedPresenceReceiver(ownMUCJID, DirectedPresenceSender::DontSendPresence);
ownMUCJID = presence->getFrom();
presenceSender->addDirectedPresenceReceiver(ownMUCJID, DirectedPresenceSender::AndSendPresence);
}
- onJoinComplete(getOwnNick());
}
// MUC status 201: a new room has been created
if (status.code == 201) {
isLocked = true;
/* Room is created and locked */
/* Currently deal with this by making an instant room */
@@ -290,12 +289,15 @@ void MUCImpl::handleIncomingPresence(Presence::ref presence) {
boost::shared_ptr< GenericRequest<MUCOwnerPayload> > request = boost::make_shared< GenericRequest<MUCOwnerPayload> >(IQ::Set, getJID(), mucPayload, iqRouter_);
request->onResponse.connect(boost::bind(&MUCImpl::handleCreationConfigResponse, this, _1, _2));
request->send();
}
}
}
+ if (joinComplete_ && !isLocked) {
+ onJoinComplete(getOwnNick());
+ }
if (!isLocked && !isUnlocked_ && (presence->getFrom() == ownMUCJID)) {
isUnlocked_ = true;
onUnlocked();
}
}
}