Fix freeze when opening already opened room

This commit is contained in:
Tobias Fella
2020-11-19 12:47:43 +01:00
parent f4f0211383
commit d5379f86c1

View File

@@ -124,6 +124,8 @@ Kirigami.ScrollablePage {
const index = eventToIndex(currentRoom.readMarkerEventId)
if(index === -1)
return
if(firstVisibleIndex() === -1 || lastVisibleIndex() === -1)
return
if(index < firstVisibleIndex() && index > lastVisibleIndex()) {
currentRoom.readMarkerEventId = sortedMessageEventModel.data(sortedMessageEventModel.index(lastVisibleIndex(), 0), MessageEventModel.EventIdRole)
}
@@ -395,25 +397,13 @@ Kirigami.ScrollablePage {
}
function firstVisibleIndex() {
let index = -1;
let center = messageListView.x + messageListView.width / 2;
let i = 0;
while(index === -1) {
index = messageListView.indexAt(center, messageListView.y + messageListView.contentY + i);
i++;
}
return index;
return messageListView.indexAt(center, messageListView.y + messageListView.contentY);
}
function lastVisibleIndex() {
let index = -1;
let center = messageListView.x + messageListView.width / 2;
let i = 0;
while(index === -1) {
index = messageListView.indexAt(center, messageListView.y + messageListView.contentY + messageListView.height - i);
i++;
}
return index;
return messageListView.indexAt(center, messageListView.y + messageListView.contentY + messageListView.height);
}
function openMessageContext(author, message, eventId, toolTip, model) {