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 target: MainWindow
} }
Connections {
function onScrollToIndex(index) {
chat.positionViewAtIndex(index, ListView.Center);
chat.updateLastScroll();
}
target: room
}
ScrollBar { ScrollBar {
id: scrollbar id: scrollbar
@ -59,8 +69,11 @@ Item {
property int lastScrollPos: 0 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. // 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) function updateLastScroll() {
onModelChanged: lastScrollPos = (contentY+height) lastScrollPos = (contentY+height);
}
onMovementEnded: updateLastScroll()
onModelChanged: updateLastScroll()
onHeightChanged: contentY = (lastScrollPos-height) onHeightChanged: contentY = (lastScrollPos-height)
Component { Component {
@ -651,6 +664,7 @@ Item {
onClicked: function () { onClicked: function () {
chat.positionViewAtBeginning(); chat.positionViewAtBeginning();
TimelineManager.focusMessageInput(); TimelineManager.focusMessageInput();
chat.updateLastScroll();
} }
anchors { anchors {

View file

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