1 files changed, 15 insertions, 2 deletions
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 752aedb0..fddd5700 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -1284,13 +1284,20 @@ TimelineModel::updateLastMessage()
void
TimelineModel::setCurrentIndex(int index)
{
+ setCurrentIndex(index, false);
+}
+
+void
+TimelineModel::setCurrentIndex(int index, bool ignoreInactiveState)
+{
auto oldIndex = idToIndex(currentId);
currentId = indexToId(index);
if (index != oldIndex)
emit currentIndexChanged(index);
- if (!QGuiApplication::focusWindow() || !QGuiApplication::focusWindow()->isActive() ||
- MainWindow::instance()->windowForRoom(roomId()) != QGuiApplication::focusWindow())
+ if (!ignoreInactiveState &&
+ (!QGuiApplication::focusWindow() || !QGuiApplication::focusWindow()->isActive() ||
+ MainWindow::instance()->windowForRoom(roomId()) != QGuiApplication::focusWindow()))
return;
if (!currentId.startsWith('m')) {
@@ -1562,6 +1569,12 @@ TimelineModel::markEventsAsRead(const std::vector<QString> &event_ids)
}
void
+TimelineModel::markRoomAsRead()
+{
+ setCurrentIndex(0, true);
+}
+
+void
TimelineModel::updateLastReadId(const QString ¤tRoomId)
{
if (currentRoomId == room_id_) {
|