on xenial help sign in
Keep applications suspended while lockscreen is shown Fixes: 1378126
df85ab4Michael Zanetti
qml/Shell.qml+1−1
@@ -605,7 +605,7 @@ Item {
605 Binding {
605 Binding {
606 target: ApplicationManager
606 target: ApplicationManager
607 property: "suspended"
607 property: "suspended"
608− value: greeter.shown && greeterWrapper.showProgress == 1
608+ value: (greeter.shown && greeterWrapper.showProgress == 1) || lockscreen.shown
609 }
609 }
610 }
610 }
611 }
611 }
tests/qmltests/tst_ShellWithPin.qml+27
@@ -444,5 +444,32 @@ Item {
444 tryCompare(lockscreen, "shown", false);
444 tryCompare(lockscreen, "shown", false);
445 tryCompare(LightDM.Greeter, "active", false);
445 tryCompare(LightDM.Greeter, "active", false);
446 }
446 }
447+
448+ function test_suspend() {
449+ var greeter = findChild(shell, "greeter");
450+
451+ // Put it to sleep
452+ Powerd.status = Powerd.Off;
453+
454+ // If locked, ApplicationManager.suspended should be true
455+ tryCompare(ApplicationManager, "suspended", true);
456+
457+ // And wake up
458+ Powerd.status = Powerd.On;
459+ tryCompare(greeter, "showProgress", 1);
460+
461+ // Swipe away greeter to focus app
462+ swipeAwayGreeter();
463+
464+ // We have a lockscreen, make sure we're still suspended
465+ tryCompare(ApplicationManager, "suspended", true);
466+
467+ enterPin("1234")
468+
469+ // Now that the lockscreen has gone too, make sure we're waking up
470+ tryCompare(ApplicationManager, "suspended", false);
471+
472+ }
473+
447 }
474 }
448}
475}