diff options
Diffstat (limited to 'Swiften/MUC/MUCImpl.cpp')
-rw-r--r-- | Swiften/MUC/MUCImpl.cpp | 4 |
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(); } } } |