Cómo detener ListView para "saltar" cuando se cambia el modelo

Lo que necesito hacer: Necesito crear unventana de chat usando unListView en QML que almacena los mensajes de chat. lo puselistView.positionViewAtEnd() para seguir los últimos mensajes. DeshabilitopositionViewAtEnd cuando me desplazo hacia arriba para poder leer los mensajes pasados sin saltar al final cada vez que recibo un nuevo mensaje.

El problema: Después de desplazarse hacia arriba, cada vezRecibo un nuevo mensaje que salta Al principio de la lista. Para resolver eso me las arreglo paraalmacenar elcontentY de la lista y restablecerlo cada vezonCountChanged controlador se llama (ver el código a continuación):

ListView {
    id: messagesList
    model: contact? contact.messages: []
    delegate: delegate
    anchors.fill: parent
    anchors.bottomMargin: 20
    height: parent.height
    anchors.margins: 10

    property int currentContentY

    onMovementEnded: {
       currentContentY = contentY
    }

    onCountChanged: {
        contentY = currentContentY
    }
    onContentYChanged: {
        console.log(".....contentY: " + contentY)
    }
}   

El problema es que aunque configuré el últimocontentY Tenía, antes de cambiar el modelo, ella lista todavía salta un poco (varios píxeles, no al final o al principio) yno siempre salta. Y cuando voy al principio de la lista e imprimo elcontentY Obtengo valores negativos. TeóricamentecontentY al principio de la lista debe ser0.

¿Alguien puede decirme qué está yendo mal? ¿O tal vez sugiera otra solución para crear mi lista de mensajes?

Que de antemano! :)