diff --git a/src/timeline2/view/qml/timeline.qml b/src/timeline2/view/qml/timeline.qml index 7f49c644fa14abeba8c6fab1eb9e53b168da12bb..fc78031d1956bbf38e56cebd9dff0bd7eba8cfb9 100644 --- a/src/timeline2/view/qml/timeline.qml +++ b/src/timeline2/view/qml/timeline.qml @@ -160,6 +160,16 @@ Rectangle { return -1; } } + function getMouseX() { + if (dragProxy.draggedItem > -1 && dragProxy.masterObject) { + return (dragProxy.masterObject.x + dragProxy.masterObject.mouseXPos) - scrollView.contentX + } + if (tracksArea.containsMouse) { + return tracksArea.mouseX + } else { + return -1; + } + } function getScrollPos() { return scrollView.contentX @@ -298,7 +308,7 @@ Rectangle { //onCurrentTrackChanged: timeline.selection = [] onTimeScaleChanged: { if (root.zoomOnMouse >= 0) { - scrollView.contentX = Math.max(0, root.zoomOnMouse * timeline.scaleFactor - tracksArea.mouseX) + scrollView.contentX = Math.max(0, root.zoomOnMouse * timeline.scaleFactor - getMouseX()) root.zoomOnMouse = -1 } else { scrollView.contentX = Math.max(0, root.consumerPosition * timeline.scaleFactor - (scrollView.width / 2))