diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index d1b1eb2180111ed307ea986a03071e468c267ca7..2d0256fc3cd29e8f4ed68b4df90579ca528d6e5e 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -710,14 +710,14 @@ class SpectrumNetworkPlugin : public NetworkPlugin { if (CONFIG_STRING(config, "service.protocol") != "prpl-jabber") { np->handleParticipantChanged(np->m_accounts[account], nickname, room, 0, pbnetwork::STATUS_ONLINE); const char *disp; - if ((disp = purple_connection_get_display_name(account->gc))) { + if ((disp = purple_connection_get_display_name(account->gc)) == NULL) { + disp = purple_account_get_username(account); + } + + if (nickname != disp) { handleRoomNicknameChanged(np->m_accounts[account], room, disp); np->handleParticipantChanged(np->m_accounts[account], nickname, room, 0, pbnetwork::STATUS_ONLINE, "", disp); } - else { - handleRoomNicknameChanged(np->m_accounts[account], room, purple_account_get_username(account)); - np->handleParticipantChanged(np->m_accounts[account], nickname, room, 0, pbnetwork::STATUS_ONLINE, "", purple_account_get_username(account)); - } } LOG4CXX_INFO(logger, user << ": Joining the room " << room); diff --git a/libtransport/Conversation.cpp b/libtransport/Conversation.cpp index 34de156ce80cc3218ae8fc1224a8e402e535acab..6ac34628f84f127b52875e31dca14df169efad1c 100644 --- a/libtransport/Conversation.cpp +++ b/libtransport/Conversation.cpp @@ -313,6 +313,7 @@ Swift::Presence::ref Conversation::generatePresence(const std::string &nick, int Swift::MUCUserPayload::StatusCode c; c.code = 210; p->addStatusCode(c); + m_nicknameChanged = false; } m_sentInitialPresence = true; } diff --git a/tests/libtransport/localbuddy.cpp b/tests/libtransport/localbuddy.cpp index d73cf5dd18066fc6dfc68c6494b5a084e8d924c2..6d9fdce5ad75c90cfe7462d11d582f5e3ac62c81 100644 --- a/tests/libtransport/localbuddy.cpp +++ b/tests/libtransport/localbuddy.cpp @@ -139,7 +139,6 @@ class LocalBuddyTest : public CPPUNIT_NS :: TestFixture, public BasicTest { received.clear(); buddy->setStatus(Swift::StatusShow(Swift::StatusShow::None), ""); - dumpReceived(); CPPUNIT_ASSERT_EQUAL(1, (int) received.size()); CPPUNIT_ASSERT(dynamic_cast(getStanza(received[0]))); CPPUNIT_ASSERT_EQUAL(Swift::StatusShow::None, dynamic_cast(getStanza(received[0]))->getShow());