X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fircserverhandler.cpp;h=8a093f623528a38b2eb57c41bf2b3d19c25b4864;hp=4d706d69805a6601efb417aa20cea8b4dff0b604;hb=e1d4e2bf7c368d84d853f33e5f55a72945cc7f6a;hpb=0abe45a62eb5d9c8e1d8c0e783d77e07e705235b diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index 4d706d69..8a093f62 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -306,11 +306,15 @@ void IrcServerHandler::handleNick(const QString &prefix, const QList ? newnick : prefix; + + // the order is cruicial + // otherwise the client would rename the buffer, see that the assigned ircuser doesn't match anymore + // and remove the ircuser from the querybuffer leading to a wrong on/offline state + ircuser->setNick(newnick); coreSession()->renameBuffer(network()->networkId(), newnick, oldnick); + foreach(QString channel, ircuser->channels()) emit displayMsg(Message::Nick, BufferInfo::ChannelBuffer, channel, newnick, sender); - - ircuser->setNick(newnick); } void IrcServerHandler::handleNotice(const QString &prefix, const QList ¶ms) {