From b8107d4a013369262725f338f89cc79f04729b69 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Fri, 6 Jun 2025 00:08:35 +0200 Subject: [PATCH] Fix message pagination getting stuck --- src/Cache.cpp | 2 +- src/timeline/EventStore.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Cache.cpp b/src/Cache.cpp index 65e703e0..84cad3ab 100644 --- a/src/Cache.cpp +++ b/src/Cache.cpp @@ -4292,7 +4292,7 @@ Cache::saveOldMessages(const std::string &room_id, const mtx::responses::Message orderDb.put(txn, lmdb::to_sv(index), orderEntry.dump()); txn.commit(); } - return index; + return msgIndex; } std::string event_id_val; diff --git a/src/timeline/EventStore.cpp b/src/timeline/EventStore.cpp index 68089ceb..da0e77a4 100644 --- a/src/timeline/EventStore.cpp +++ b/src/timeline/EventStore.cpp @@ -69,9 +69,9 @@ EventStore::EventStore(std::string room_id, QObject *) } uint64_t newFirst = cache::client()->saveOldMessages(room_id_, res); - if (newFirst == first) + if (newFirst == first) { fetchMore(); - else { + } else { if (this->last != std::numeric_limits::max()) { auto oldFirst = this->first; emit beginInsertRows(toExternalIdx(newFirst), toExternalIdx(this->first - 1)); @@ -323,6 +323,7 @@ EventStore::clearTimeline() decryptedEvents_.clear(); events_.clear(); + noMoreMessages = false; emit endResetModel(); } @@ -428,6 +429,7 @@ EventStore::handleSync(const mtx::responses::Timeline &events) decryptedEvents_.clear(); events_.clear(); + noMoreMessages = false; emit endResetModel(); return; } @@ -439,6 +441,7 @@ EventStore::handleSync(const mtx::responses::Timeline &events) decryptedEvents_.clear(); events_.clear(); + noMoreMessages = false; emit endResetModel(); } else if (range->last > this->last) { emit beginInsertRows(toExternalIdx(this->last + 1), toExternalIdx(range->last));