@jeanmilost
Your logic seems to be correct.
What you have to do is to move the re-calculation of Scrollbar size & position to the Rectangle rcPageContainer because you are applying scale for that.
Rectangle
{
id: rcPageContainer
objectName: "rcPageContainer"
...
/// called when page viewport width changed
onWidthChanged:
{
sbHorz.size = rcPageViewport.width / rcPageContainer.width
sbHorz.position = Math.min(Math.max(sbHorz.position, 0.0), 1.0 - (sbHorz.size));
}
/// called when page viewport height changed
onHeightChanged:
{
sbVert.size = rcPageViewport.height / rcPageContainer.height
sbVert.position = Math.min(Math.max(sbVert.position, 0.0), 1.0 - (sbVert.size));
}
}