diff --git a/src/timeline2/TimelineModel.cpp b/src/timeline2/TimelineModel.cpp index db9ce555..83d1e417 100644 --- a/src/timeline2/TimelineModel.cpp +++ b/src/timeline2/TimelineModel.cpp @@ -584,6 +584,27 @@ TimelineModel::fetchHistory() }); } +void +TimelineModel::setCurrentIndex(int index) +{ + auto oldIndex = idToIndex(currentId); + currentId = indexToId(index); + emit currentIndexChanged(index); + + if (oldIndex < index) { + http::client()->read_event(room_id_.toStdString(), + currentId.toStdString(), + [this](mtx::http::RequestErr err) { + if (err) { + nhlog::net()->warn( + "failed to read_event ({}, {})", + room_id_.toStdString(), + currentId.toStdString()); + } + }); + } +} + void TimelineModel::addBackwardsEvents(const mtx::responses::Messages &msgs) { diff --git a/src/timeline2/TimelineModel.h b/src/timeline2/TimelineModel.h index 9b861010..10f3c490 100644 --- a/src/timeline2/TimelineModel.h +++ b/src/timeline2/TimelineModel.h @@ -162,11 +162,7 @@ public: public slots: void fetchHistory(); - void setCurrentIndex(int index) - { - currentId = indexToId(index); - emit currentIndexChanged(index); - } + void setCurrentIndex(int index); int currentIndex() const { return idToIndex(currentId); } void markEventsAsRead(const std::vector &event_ids);