From 67458dd2f86d0e74fa14730827f1475d12a4dd6b Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Sat, 7 Jul 2018 12:35:29 +0300 Subject: Mark all decrypted messages with a padlock fixes #351 --- src/timeline/TimelineView.cc | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'src/timeline') diff --git a/src/timeline/TimelineView.cc b/src/timeline/TimelineView.cc index 114c52df..e9c5b017 100644 --- a/src/timeline/TimelineView.cc +++ b/src/timeline/TimelineView.cc @@ -280,15 +280,19 @@ TimelineView::parseMessageEvent(const mtx::events::collections::TimelineEvents & return processMessageEvent(mpark::get(event), direction); } else if (mpark::holds_alternative>(event)) { - auto decrypted = - parseEncryptedEvent(mpark::get>(event)); - return parseMessageEvent(decrypted, direction); + auto res = parseEncryptedEvent(mpark::get>(event)); + auto item = parseMessageEvent(res.event, direction); + + if (item != nullptr && res.isDecrypted) + item->markReceived(true); + + return item; } return nullptr; } -TimelineEvent +DecryptionResult TimelineView::parseEncryptedEvent(const mtx::events::EncryptedEvent &e) { MegolmSessionIndex index; @@ -309,12 +313,12 @@ TimelineView::parseEncryptedEvent(const mtx::events::EncryptedEventcritical("failed to check megolm session's existence: {}", e.what()); dummy.content.body = "-- Decryption Error (failed to communicate with DB) --"; - return dummy; + return {dummy, false}; } std::string msg_str; @@ -330,7 +334,7 @@ TimelineView::parseEncryptedEvent(const mtx::events::EncryptedEventcritical("failed to decrypt message with index ({}, {}, {}): {}", index.room_id, @@ -338,7 +342,7 @@ TimelineView::parseEncryptedEvent(const mtx::events::EncryptedEvent