From 01bac70680553e622a655722959a113ed35f4de9 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 2 Aug 2021 13:59:37 +0200 Subject: Matrix: use correct read marker for notifications (custom qm read marker) --- src/plugins/Matrix.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp index 0bb3e7b..58a90c9 100644 --- a/src/plugins/Matrix.cpp +++ b/src/plugins/Matrix.cpp @@ -576,8 +576,9 @@ namespace QuickMedia { read_marker_message_timestamp = read_marker_message->timestamp; } - if(read_marker_message_timestamp == 0 || read_marker_message_timestamp < room->read_marker_event_timestamp) - read_marker_message_timestamp = room->read_marker_event_timestamp; + const int64_t qm_read_marker = room->read_marker_event_timestamp; + if(read_marker_message_timestamp == 0 || read_marker_message_timestamp < qm_read_marker) + read_marker_message_timestamp = qm_read_marker; std::shared_ptr last_new_message = get_last_message_by_timestamp(new_messages); if(!last_new_message) @@ -2022,6 +2023,11 @@ namespace QuickMedia { read_marker_message_timestamp = read_marker_message->timestamp; } + // TODO: Make sure |events_set_user_read_marker| is called before |events_add_messages| so this is set + const int64_t qm_read_marker = room_data->read_marker_event_timestamp; + if(read_marker_message_timestamp == 0 || read_marker_message_timestamp < qm_read_marker) + read_marker_message_timestamp = qm_read_marker; + for(auto &message : new_messages) { // TODO: Is @room ok? shouldn't we also check if the user has permission to do @room? (only when notifications are limited to @mentions) // TODO: Is comparing against read marker timestamp ok enough? -- cgit v1.2.3