@@ -15,7 +15,7 @@ QtObject {
1515 property int targetX: 0
1616 property int startY: 0
1717 property int targetY: 0
18− property real startAngle: 40
18+ property real startAngle: 30
1919 property real targetAngle: 0
2020 property int targetHeight: 0
2121 property real startScale: 1.3
@@ -24,6 +24,7 @@ QtObject {
2424
2525 property bool isMainStageApp: false
2626 property bool isSideStageApp: false
27+ property bool sideStageOpen: false
2728 property int nextInStack: 0
2829 property int shuffledZ: 0
2930
@@ -97,46 +98,60 @@ QtObject {
9798 }
9899
99100 readonly property real animatedAngle: {
101+ var nextStage = appRepeater.itemAt(nextInStack) ? appRepeater.itemAt(nextInStack).stage : ApplicationInfoInterface.MainStage;
102+
100103 var startAngle = 0;
101104 if (isMainStageApp) {
102105 startAngle = 0;
103106 } else if (isSideStageApp) {
104107 startAngle = 0;
105108 } else {
106− startAngle = root.startAngle;
109+ if (stage == ApplicationInfoInterface.SideStage && itemIndex == nextInStack && !sideStageOpen) {
110+ startAngle = 0;
111+ } else {
112+ startAngle = root.startAngle;
113+ }
107114 }
108115
109− var nextStage = appRepeater.itemAt(nextInStack) ? appRepeater.itemAt(nextInStack).stage : ApplicationInfoInterface.MainStage;
110116
111117 if (progress < breakPoint) {
112− if (stage == nextStage) {
118+ if (itemIndex == nextInStack && sideStageOpen) {
113119 return MathUtils.linearAnimation(0, 1, startAngle, targetAngle, progress);
114120 } else {
115121 return 0;
116122 }
117123 }
118− if (itemIndex == nextInStack || (stage == nextStage && (isMainStageApp || isSideStageApp))) {
124+ if (itemIndex == nextInStack) {
119125 return MathUtils.linearAnimation(0, 1, startAngle, targetAngle, progress);
120126 }
121127 return MathUtils.linearAnimation(breakPoint, 1, startAngle, targetAngle, progress);
122128 }
123129
124130 readonly property real animatedScale: {
131+ var pullingInSideStage = itemIndex == nextInStack && stage == ApplicationInfoInterface.SideStage && !sideStageOpen;
132+
125133 var startScale = 1;
126134 if (isMainStageApp) {
127135 startScale = 1;
128136 } else if (isSideStageApp) {
129137 startScale = 1;
130138 } else {
131− startScale = root.startScale;
139+ if (pullingInSideStage) {
140+ startScale = 1
141+ } else {
142+ startScale = root.startScale;
143+ }
132144 }
133145
134− if (itemIndex == nextInStack) {
135− return MathUtils.linearAnimation(0, 1, startScale, targetScale, progress)
136− }
137146 if (progress < breakPoint) {
147+ if (itemIndex == nextInStack && sideStageOpen) {
148+ return MathUtils.linearAnimation(0, 1, startScale, targetScale, progress);
149+ }
138150 return startScale;
139151 }
152+ if (itemIndex == nextInStack) {
153+ return MathUtils.linearAnimation(0, 1, startScale, targetScale, progress)
154+ }
140155
141156 return MathUtils.linearAnimation(breakPoint, 1, startScale, targetScale, progress)
142157 }