From 836f35dc7d84dbd085aeae72c14120dd3994244c Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Mon, 17 Apr 2017 12:09:19 +0200 Subject: [PATCH] Don't discard user display names upon leave membership events Otherwise the following QJsonObject will discard a valid display name in RoomMemberEvent::fromJson(): QJsonObject({"content":{"membership":"leave"},"event_id":"$14905359301189950PoADM:matrix.org","membership":"leave","origin_server_ts":1490535930821,"sender":"@elvisangelaccio:matrix.org","state_key":"@elvisangelaccio:matrix.org","type":"m.room.member","unsigned":{"age":1887090448,"prev_content":{"avatar_url":"mxc://matrix.org/PuDxgBQfeplXbCQFvOGpTEmC","displayname":"eang","membership":"join"},"prev_sender":"@elvisangelaccio:matrix.org","replaces_state":"$14905358091189487gXwtE:matrix.org"}}) --- user.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user.cpp b/user.cpp index 8f0968bb1..699989acb 100644 --- a/user.cpp +++ b/user.cpp @@ -132,7 +132,7 @@ void User::processEvent(Event* event) if( event->type() == EventType::RoomMember ) { RoomMemberEvent* e = static_cast(event); - if( d->name != e->displayName() ) + if( d->name != e->displayName() && e->membership() != MembershipType::Leave) { const auto oldName = d->name; d->name = e->displayName();