@@ -965,7 +965,7 @@ AbstractStage {
965965 when: (root.mode == "staged" || root.mode == "stagedWithSideStage") && (root.state == "sideStagedRightEdge" || root.state == "stagedRightEdge" || rightEdgeFocusAnimation.running || hidingAnimation.running)
966966 PropertyChanges {
967967 target: stagedRightEdgeMaths
968− progress: Math.max(edgeBarrier.progress, rightEdgeDragArea.progress)
968+ progress: Math.max(edgeBarrier.progress, rightEdgeDragArea.draggedProgress)
969969 }
970970 PropertyChanges {
971971 target: appDelegate
@@ -1021,12 +1021,12 @@ AbstractStage {
10211021 name: "staged"; when: root.state == "staged"
10221022 PropertyChanges {
10231023 target: appDelegate
1024− x: appDelegate.itemIndex == 0 ? 0 : root.width
1024+ x: stageMaths.itemX
10251025 y: appDelegate.fullscreen ? 0 : PanelState.panelHeight
10261026 requestedWidth: appContainer.width
10271027 requestedHeight: appDelegate.fullscreen ? appContainer.height : appContainer.height - PanelState.panelHeight
10281028 visuallyMaximized: true
1029− visible: appDelegate.itemIndex == 0
1029+ visible: appDelegate.x < root.width
10301030 }
10311031 PropertyChanges {
10321032 target: decoratedWindow
@@ -1036,6 +1036,10 @@ AbstractStage {
10361036 target: resizeArea
10371037 enabled: false
10381038 }
1039+ PropertyChanges {
1040+ target: stageMaths
1041+ animateX: !focusAnimation.running && itemIndex !== spreadItem.highlightedIndex
1042+ }
10391043 },
10401044 State {
10411045 name: "stagedWithSideStage"; when: root.state == "stagedWithSideStage"
@@ -1170,7 +1174,6 @@ AbstractStage {
11701174 visuallyMaximized: false
11711175 }
11721176 }
1173−
11741177 ]
11751178 transitions: [
11761179 Transition {
@@ -1571,6 +1574,13 @@ AbstractStage {
15711574 property bool cancelled: false
15721575
15731576 property real progress: dragging ? -touchPosition.x / root.width : 0
1577+ onProgressChanged: {
1578+ if (dragging) {
1579+ draggedProgress = progress;
1580+ }
1581+ }
1582+
1583+ property real draggedProgress: 0
15741584
15751585 onTouchPositionChanged: {
15761586 gesturePoints.push(touchPosition.x);
@@ -1585,6 +1595,7 @@ AbstractStage {
15851595 // A potential edge-drag gesture has started. Start recording it
15861596 gesturePoints = [];
15871597 cancelled = false;
1598+ draggedProgress = 0;
15881599 } else {
15891600 // Ok. The user released. Did he drag far enough to go to full spread?
15901601 if (gesturePoints[gesturePoints.length - 1] < -spreadItem.rightEdgeBreakPoint * spreadItem.width ) {