@@ -65,6 +65,14 @@ Item {
6565
6666 function tease() {
6767 if (available) {
68+ teaseTimer.mode = "teasing"
69+ teaseTimer.start();
70+ }
71+ }
72+
73+ function hint() {
74+ if (available && root.state == "") {
75+ teaseTimer.mode = "hinting"
6876 teaseTimer.start();
6977 }
7078 }
@@ -72,6 +80,7 @@ Item {
7280 Timer {
7381 id: teaseTimer
7482 interval: 200
83+ property string mode: "teasing"
7584 }
7685
7786 Timer {
@@ -102,6 +111,13 @@ Item {
102111 }
103112 }
104113
114+ Connections {
115+ target: LauncherModel
116+ onRowsRemoved: hint();
117+ onRowsInserted: hint();
118+ onRowsMoved: hint();
119+ }
120+
105121 SequentialAnimation {
106122 id: fadeOutAnimation
107123 ScriptAction {
@@ -271,11 +287,19 @@ Item {
271287 },
272288 State {
273289 name: "teasing"
274− when: teaseTimer.running
290+ when: teaseTimer.running && teaseTimer.mode == "teasing"
275291 PropertyChanges {
276292 target: panel
277293 x: -root.panelWidth + units.gu(2)
278294 }
295+ },
296+ State {
297+ name: "hinting"
298+ when: teaseTimer.running && teaseTimer.mode == "hinting"
299+ PropertyChanges {
300+ target: panel
301+ x: 0
302+ }
279303 }
280304 ]
281305}