Mark messages as read, when Nheko gets focused

fixes #235
pull/471/head
Nicolas Werner 4 years ago
parent e2fc676c77
commit 7ddcab3902
  1. 15
      resources/qml/MessageView.qml
  2. 6
      src/timeline/TimelineModel.cpp

@ -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;
}

@ -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());

Loading…
Cancel
Save