diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Room.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/Room.cpp b/src/Room.cpp index a8a8d6a..c7135da 100644 --- a/src/Room.cpp +++ b/src/Room.cpp @@ -281,16 +281,19 @@ namespace dchat { case RoomDataType::ADD_MESSAGE: { - RoomMessage message; - message.id = *request.requestHash; - message.creator = user; - message.timestampSeconds = timestampSeconds; - message.text = std::string((const char*)request.decryptedData.data + 1, request.decryptedData.size - 1); + auto message = std::make_shared<RoomMessage>(); + message->id = *request.requestHash; + message->creator = user; + message->timestampSeconds = timestampSeconds; + message->text = std::string((const char*)request.decryptedData.data + 1, request.decryptedData.size - 1); RoomAddMessageRequest roomRequest; roomRequest.room = room; roomRequest.loadedFromCache = request.loadedFromCache; roomRequest.message = std::move(message); + roomRequest.prevMessage = nullptr; + if(!room->messages.empty()) + roomRequest.prevMessage = room->messages.back(); if(callbackFuncs.addMessageCallbackFunc) callbackFuncs.addMessageCallbackFunc(roomRequest); |