diff --git a/src/libneochat/neochatroom.cpp b/src/libneochat/neochatroom.cpp index 6225c0694..1c83857a4 100644 --- a/src/libneochat/neochatroom.cpp +++ b/src/libneochat/neochatroom.cpp @@ -1180,6 +1180,9 @@ void NeoChatRoom::loadPinnedMessage() const QString &mostRecentEventId = events.last(); connection()->callApi(id(), mostRecentEventId).then([this](const auto &job) { auto event = fromJson>(job->jsonData()); + if (auto encEv = eventCast(event.get())) { + event = decryptMessage(*encEv); + } m_pinnedMessage = EventHandler::richBody(this, event.get()); Q_EMIT pinnedMessageChanged(); }); diff --git a/src/timeline/models/pinnedmessagemodel.cpp b/src/timeline/models/pinnedmessagemodel.cpp index 2c5c09a23..666bca35b 100644 --- a/src/timeline/models/pinnedmessagemodel.cpp +++ b/src/timeline/models/pinnedmessagemodel.cpp @@ -55,7 +55,11 @@ void PinnedMessageModel::fill() for (const auto &event : std::as_const(events)) { m_room->connection()->callApi(m_room->id(), event).then([this](const auto &job) { beginInsertRows({}, m_pinnedEvents.size(), m_pinnedEvents.size()); - m_pinnedEvents.push_back(std::move(fromJson>(job->jsonData()))); + auto ev = fromJson>(job->jsonData()); + if (auto encEv = eventCast(ev.get())) { + ev = room()->decryptMessage(*encEv); + } + m_pinnedEvents.push_back(std::move(ev)); Q_EMIT newEventAdded(m_pinnedEvents.back().get()); endInsertRows(); });