@@ -70,12 +70,8 @@ Item {
70 animateTimer.start();
70 animateTimer.start();
73− function tease(interval) {
73+ function tease() {
74− if (available && root.state == "" && !dragArea.dragging) {
74+ if (available && !dragArea.dragging) {
75− if (interval === undefined) {
78− teaseTimer.interval = interval;
79 teaseTimer.mode = "teasing"
75 teaseTimer.mode = "teasing"
80 teaseTimer.start();
76 teaseTimer.start();
@@ -83,7 +79,6 @@ Item {
84 function hint() {
80 function hint() {
85 if (available && root.state == "") {
81 if (available && root.state == "") {
86− teaseTimer.interval = 300;
87 teaseTimer.mode = "hinting"
82 teaseTimer.mode = "hinting"
88 teaseTimer.start();
83 teaseTimer.start();
@@ -91,7 +86,8 @@ Item {
93 id: teaseTimer
88 id: teaseTimer
89+ interval: mode == "teasing" ? 200 : 300
94− property string mode
90+ property string mode: "teasing"
@@ -214,7 +210,7 @@ Item {
214 bottom: parent.bottom
210 bottom: parent.bottom
216 x: -width
212 x: -width
217− visible: x > -width || dragArea.status === DirectionalDragArea.Undecided
213+ visible: root.x > 0 || x > -width || dragArea.status === DirectionalDragArea.Undecided
218 model: LauncherModel
214 model: LauncherModel
220 property bool animate: true
216 property bool animate: true
@@ -256,6 +252,7 @@ Item {
256 direction: Direction.Rightwards
252 direction: Direction.Rightwards
258 enabled: root.available
254 enabled: root.available
255+ x: -root.x // so if launcher is adjusted relative to screen, we stay put (like tutorial does when teasing)
259 width: root.dragAreaWidth
256 width: root.dragAreaWidth
260 height: root.height
257 height: root.height
@@ -269,7 +266,7 @@ Item {
269 // would appear right next to the user's finger out of nowhere.
266 // would appear right next to the user's finger out of nowhere.
270 // Instead, we make the panel go towards the user's finger in several
267 // Instead, we make the panel go towards the user's finger in several
271 // steps. ie., in an animated way.
268 // steps. ie., in an animated way.
272− var targetPanelX = Math.min(0, touchX - panel.width)
269+ var targetPanelX = Math.min(0, touchX - panel.width) - root.x
273 var delta = targetPanelX - panel.x
270 var delta = targetPanelX - panel.x
274 // the trick is not to go all the way (1.0) as it would cause a sudden jump
271 // the trick is not to go all the way (1.0) as it would cause a sudden jump
275 panel.x += 0.4 * delta
272 panel.x += 0.4 * delta
@@ -285,8 +282,6 @@ Item {
286 root.switchToNextState("")
283 root.switchToNextState("")
@@ -303,7 +298,7 @@ Item {
303 name: "visible"
298 name: "visible"
304 PropertyChanges {
299 PropertyChanges {
305 target: panel
300 target: panel
306− x: 0
301+ x: -root.x // so we never go past panelWidth, even when teased by tutorial