diff --git a/src/timeline/EventStore.cpp b/src/timeline/EventStore.cpp
index 8860bc75..881fd5bb 100644
--- a/src/timeline/EventStore.cpp
+++ b/src/timeline/EventStore.cpp
@@ -71,11 +71,14 @@ EventStore::EventStore(std::string room_id, QObject *)
fetchMore();
else {
if (this->last != std::numeric_limits<uint64_t>::max()) {
+ auto oldFirst = this->first;
emit beginInsertRows(toExternalIdx(newFirst),
toExternalIdx(this->first - 1));
this->first = newFirst;
emit endInsertRows();
emit fetchedMore();
+ emit dataChanged(toExternalIdx(oldFirst),
+ toExternalIdx(oldFirst));
} else {
auto range = cache::client()->getTimelineRange(room_id_);
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 1e369b46..e5e9d9bf 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -354,18 +354,13 @@ TimelineModel::TimelineModel(TimelineViewManager *manager, QString room_id, QObj
Qt::QueuedConnection);
connect(this, &TimelineModel::addPendingMessageToStore, &events, &EventStore::addPending);
- connect(
- &events,
- &EventStore::dataChanged,
- this,
- [this](int from, int to) {
- relatedEventCacheBuster++;
- nhlog::ui()->debug(
- "data changed {} to {}", events.size() - to - 1, events.size() - from - 1);
- emit dataChanged(index(events.size() - to - 1, 0),
- index(events.size() - from - 1, 0));
- },
- Qt::QueuedConnection);
+ connect(&events, &EventStore::dataChanged, this, [this](int from, int to) {
+ relatedEventCacheBuster++;
+ nhlog::ui()->debug(
+ "data changed {} to {}", events.size() - to - 1, events.size() - from - 1);
+ emit dataChanged(index(events.size() - to - 1, 0),
+ index(events.size() - from - 1, 0));
+ });
connect(&events, &EventStore::beginInsertRows, this, [this](int from, int to) {
int first = events.size() - to;
|