diff --git a/src/Cache.cpp b/src/Cache.cpp index 1ae7a846..aca01c1a 100644 --- a/src/Cache.cpp +++ b/src/Cache.cpp @@ -887,6 +887,7 @@ void Cache::saveState(const mtx::responses::Sync &res) { using namespace mtx::events; + auto user_id = this->localUserId_.toStdString(); auto txn = lmdb::txn::begin(env_); @@ -960,8 +961,10 @@ Cache::saveState(const mtx::responses::Sync &res) if (!room.second.ephemeral.receipts.empty()) { std::vector receipts; for (const auto &receipt : room.second.ephemeral.receipts) - receipts.push_back(QString::fromStdString(receipt.first)); - emit newReadReceipts(QString::fromStdString(room.first), receipts); + if (receipt.first != user_id) + receipts.push_back(QString::fromStdString(receipt.first)); + if (!receipts.empty()) + emit newReadReceipts(QString::fromStdString(room.first), receipts); } readStatus.emplace(QString::fromStdString(room.first), calculateRoomReadStatus(room.first));