on xenial help sign in
don't trigger teasing during a movement of the greeter

This prevents the greeter getting stuck in the middle of the screen

commitdf36525b5c46b4a9536948dbbc954df6205c700d authorMichael Zanetti <michael.zanetti@canonical.com> dateWed 23 Oct 2013, 18:52 (13 years ago) parentf2920dd
2 files changed+17−5
Greeter/Greeter.qml+1−1 tests/qmltests/Greeter/tst_Phone.qml+16−4
Greeter/Greeter.qml+1−1
@@ -52,7 +52,7 @@ Showable {
5252 signal unlocked(int uid)
5353
5454 onRightTeaserPressedChanged: {
55− if (rightTeaserPressed && !locked) {
55+ if (rightTeaserPressed && !locked && x == 0) {
5656 teasingTimer.start();
5757 }
5858 }
tests/qmltests/Greeter/tst_Phone.qml+16−4
@@ -83,8 +83,9 @@ Item {
8383
8484 function test_teaseLockedUnlocked_data() {
8585 return [
86− {tag: "unlocked", locked: false},
87− {tag: "locked", locked: true}
86+ {tag: "unlocked", locked: false, moved: false},
87+ {tag: "locked", locked: true, moved: false},
88+ {tag: "moved", locked: false, moved: true}
8889 ];
8990 }
9091
@@ -93,10 +94,16 @@ Item {
9394 tryCompare(greeter, "x", 0);
9495 greeter.locked = data.locked;
9596
97+ // simulate greeter being in the middle of a swipe
98+ if (data.moved) {
99+ greeter.x = -units.gu(4);
100+ tryCompare(greeter, "x", -units.gu(4));
101+ }
102+
96103 mouseClick(greeter, greeter.width - units.gu(5), greeter.height - units.gu(1));
97104 greeter.minX = 0; // This is needed because the transition actually makes x jump once before animating
98105
99− if (!data.locked) {
106+ if (!data.locked && !data.moved) {
100107 // Check if it has been moved over by 2 GUs. Give it a 2 pixel grace area
101108 // because animation duration and teaseTimer are the same duration and
102109 // might cause slight offsets
@@ -106,8 +113,13 @@ Item {
106113 wait(100);
107114 compare(greeter.minX, 0, "Greeter moved even tho its locked");
108115 }
116+
117+ if (data.moved) {
118+ greeter.x = 0;
119+ }
120+
109121 // Wait until we're back to 0
110− tryCompareFunction(function() { return greeter.x;}, 0);
122+ tryCompareFunction(function() { return greeter.x;}, 0);
111123 }
112124
113125 function test_statsWelcomeScreen() {