diff options
Diffstat (limited to 'src/ChatPage.cpp')
-rw-r--r-- | src/ChatPage.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp index bcb89a03..27019ba3 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp @@ -266,6 +266,18 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QObject *parent) relatedEvents; for (const auto &event : room.timeline.events) { + auto event_id = mtx::accessors::event_id(event); + + // skip already read events + if (currentReadMarker && + currentReadMarker > cache::getEventIndex(room_id, event_id)) + continue; + + // skip our messages + auto sender = mtx::accessors::sender(event); + if (sender == http::client()->user_id().to_string()) + continue; + mtx::events::collections::TimelineEvent te{event}; std::visit([room_id = room_id](auto &event_) { event_.room_id = room_id; }, te.data); @@ -304,13 +316,6 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QObject *parent) actions.end(), mtx::pushrules::actions::Action{ mtx::pushrules::actions::notify{}}) != actions.end()) { - auto event_id = mtx::accessors::event_id(event); - - // skip already read events - if (currentReadMarker && - currentReadMarker > cache::getEventIndex(room_id, event_id)) - continue; - if (!cache::isNotificationSent(event_id)) { // We should only send one notification per event. cache::markSentNotification(event_id); |