Hopefully fix the jump when replying after scrolling

This commit is contained in:
Nicolas Werner 2024-04-05 02:52:45 +02:00
parent 779d5e9fae
commit a5f99b50eb
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
2 changed files with 16 additions and 6 deletions

View file

@ -28,6 +28,16 @@ Item {
target: MainWindow
}
Connections {
function onScrollToIndex(index) {
chat.positionViewAtIndex(index, ListView.Center);
chat.updateLastScroll();
}
target: room
}
ScrollBar {
id: scrollbar
@ -59,8 +69,11 @@ Item {
property int lastScrollPos: 0
// Fixup the scroll position when the height changes. Without this, the view is kept around the center of the currently visible content, while we usually want to stick to the bottom.
onMovementEnded: lastScrollPos = (contentY+height)
onModelChanged: lastScrollPos = (contentY+height)
function updateLastScroll() {
lastScrollPos = (contentY+height);
}
onMovementEnded: updateLastScroll()
onModelChanged: updateLastScroll()
onHeightChanged: contentY = (lastScrollPos-height)
Component {
@ -651,6 +664,7 @@ Item {
onClicked: function () {
chat.positionViewAtBeginning();
TimelineManager.focusMessageInput();
chat.updateLastScroll();
}
anchors {

View file

@ -73,10 +73,6 @@ Column {
function onRoomAvatarUrlChanged() {
messageUserAvatar.url = room.avatarUrl(userId).replace("mxc://", "image://MxcImage/");
}
function onScrollToIndex(index) {
chat.positionViewAtIndex(index, ListView.Center);
}
target: room
}