@@ -23,6 +23,8 @@ Item {
2323 property string iconName
2424
2525 property real angle: 0
26+
27+ onAngleChanged: if (index == 1) print("onAngleChanged", angle)
2628 property bool highlighted: false
2729 property real offset: 0
2830 property alias brightness: transformEffect.brightness
@@ -103,11 +105,32 @@ Item {
103105 hideSource: true
104106 }
105107
106− transform: Rotation {
107− axis { x: 1; y: 0; z: 0 }
108− origin { x: iconItem.width / 2; y: iconItem.height / 2; z: 0 }
109− angle: root.angle
110− }
108+ transform: [
109+ Rotation {
110+ axis { x: 1; y: 0; z: 0 }
111+ origin { x: iconItem.width / 2; y: angle > 0 ? 0 : iconItem.height; z: 0 }
112+ angle: root.angle * 0.8
113+ },
114+ Rotation {
115+ axis { x: 1; y: 0; z: 0 }
116+ origin { x: iconItem.width / 2; y: angle > 0 ? 0 : iconItem.height; z: 0 }
117+ angle: root.angle * 0.8
118+ },
119+ Rotation {
120+ axis { x: 1; y: 0; z: 0 }
121+ origin { x: iconItem.width / 2; y: angle > 0 ? 0 : iconItem.height; z: 0 }
122+ angle: root.angle * 0.8
123+ },
124+ Scale {
125+ xScale: 1 - (Math.abs(angle) / 500)
126+ yScale: 1 - (Math.abs(angle) / 500)
127+ origin { x: iconItem.width / 2; y: iconItem.height / 2}
128+ },
129+ Translate {
130+ y: -(root.height - root.effectiveHeight) * priv.orientationFlag
131+ }
132+
133+ ]
111134
112135/* vertexShader: "
113136 uniform highp mat4 qt_Matrix;
@@ -172,6 +195,7 @@ Item {
172195
173196 // Are we already completely outside the flickable? Stop the icon here.
174197 if (priv.distanceFromEdge < -priv.totalUnfoldedHeight) {
198+ return (-priv.distanceFromEdge - (root.height - effectiveHeight)) * priv.orientationFlag;
175199 return (-priv.distanceFromEdge - effectiveHeight) * priv.orientationFlag
176200 }
177201
@@ -185,6 +209,7 @@ Item {
185209 }
186210
187211 angle: {
212+ //return 0;
188213 // First item is special
189214 if (index == 0 || index == iconRepeater.count-1) {
190215 if (priv.distanceFromEdge < 0) {