Make read markers a bit less confusing

This commit is contained in:
Nicolas Werner 2021-01-16 13:54:38 +01:00
parent fa67b5b0f8
commit 42b08257ec
2 changed files with 6 additions and 5 deletions

View file

@ -20,10 +20,10 @@ ListView {
spacing: 4
verticalLayoutDirection: ListView.BottomToTop
onCountChanged: {
// Mark timeline as read
if (atYEnd)
model.currentIndex = 0;
} // Mark last event as read, since we are at the bottom
}
ScrollHelper {
flickable: parent

View file

@ -728,12 +728,14 @@ TimelineModel::updateLastMessage()
void
TimelineModel::setCurrentIndex(int index)
{
if (!ChatPage::instance()->isActiveWindow())
return;
auto oldIndex = idToIndex(currentId);
currentId = indexToId(index);
emit currentIndexChanged(index);
if ((oldIndex > index || oldIndex == -1) && !currentId.startsWith("m") &&
ChatPage::instance()->isActiveWindow()) {
if ((oldIndex > index || oldIndex == -1) && !currentId.startsWith("m")) {
readEvent(currentId.toStdString());
}
}
@ -896,7 +898,6 @@ TimelineModel::markEventsAsRead(const std::vector<QString> &event_ids)
read.insert(id);
int idx = idToIndex(id);
if (idx < 0) {
nhlog::ui()->warn("Read index out of range");
return;
}
emit dataChanged(index(idx, 0), index(idx, 0));