Mark messages as read, when Nheko gets focused

fixes #235
This commit is contained in:
Nicolas Werner 2021-02-13 01:41:09 +01:00
parent e2fc676c77
commit 7ddcab3902
2 changed files with 17 additions and 4 deletions

View File

@ -77,6 +77,19 @@ ListView {
}
}
Connections {
target: TimelineManager
onFocusChanged: readTimer.running = TimelineManager.isWindowFocused
}
Timer {
id: readTimer
// force current read index to update
onTriggered: chat.model.setCurrentIndex(chat.model.currentIndex)
interval: 1000
}
Component {
id: sectionHeader
@ -193,7 +206,7 @@ ListView {
Connections {
target: chat
onMovementEnded: {
if (y + height + 2 * chat.spacing > chat.contentY + timelineRoot.height && y < chat.contentY + timelineRoot.height)
if (y + height + 2 * chat.spacing > chat.contentY + chat.height && y < chat.contentY + chat.height)
chat.model.currentIndex = index;
}

View File

@ -735,14 +735,14 @@ TimelineModel::updateLastMessage()
void
TimelineModel::setCurrentIndex(int index)
{
if (!ChatPage::instance()->isActiveWindow())
return;
auto oldIndex = idToIndex(currentId);
currentId = indexToId(index);
if (index != oldIndex)
emit currentIndexChanged(index);
if (!ChatPage::instance()->isActiveWindow())
return;
if (!currentId.startsWith("m")) {
auto oldReadIndex =
cache::getEventIndex(roomId().toStdString(), currentReadId.toStdString());