@@ -68,6 +68,13 @@ Item {
71+ function setFakeActiveForApp(app) {
73+ greeter.fakeActiveForApp = app
72 target: LauncherModel
79 target: LauncherModel
73 property: "applicationManager"
80 property: "applicationManager"
@@ -130,7 +137,11 @@ Item {
130 Connections {
137 Connections {
131 target: ApplicationManager
138 target: ApplicationManager
132 onFocusRequested: {
139 onFocusRequested: {
140+ if (appId === "dialer-app") {
141+ // Always let the dialer-app through. Either user asked
142+ // for an emergency call or accepted an incoming call.
143+ setFakeActiveForApp(appId)
133− if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
144+ } else if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
134 lockscreen.show();
145 lockscreen.show();
136 greeter.hide();
147 greeter.hide();
@@ -147,6 +158,11 @@ Item {
147 if (greeter.shown && appId != "unity8-dash") {
158 if (greeter.shown && appId != "unity8-dash") {
148 greeter.hide();
159 greeter.hide();
161+ if (appId === "dialer-app") {
162+ // Always let the dialer-app through. Either user asked
163+ // for an emergency call or accepted an incoming call.
164+ setFakeActiveForApp(appId)
@@ -239,11 +255,7 @@ Item {
240 onEntered: LightDM.Greeter.respond(passphrase);
256 onEntered: LightDM.Greeter.respond(passphrase);
241 onCancel: greeter.show()
257 onCancel: greeter.show()
243− greeter.fakeActiveForApp = "dialer-app"
244− shell.activateApplication("dialer-app")
258+ onEmergencyCall: shell.activateApplication("dialer-app") // will automatically enter fake-active mode
248 onShownChanged: if (shown) greeter.fakeActiveForApp = ""
260 onShownChanged: if (shown) greeter.fakeActiveForApp = ""