@@ -60,6 +60,11 @@ Item {
6060 }
6161 }
6262
63+ function setFakeActiveForApp(app) {
64+ greeter.fakeActiveForApp = app
65+ lockscreen.hide()
66+ }
67+
6368 Binding {
6469 target: LauncherModel
6570 property: "applicationManager"
@@ -122,18 +127,18 @@ Item {
122127 Connections {
123128 target: ApplicationManager
124129 onFocusRequested: {
125− if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
130+ if (LightDM.Greeter.active && appId === "dialer-app") {
131+ // Always let the dialer-app through. Either user asked
132+ // for an emergency call or accepted an incoming call.
133+ setFakeActiveForApp(appId)
134+ } else if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
126135 lockscreen.show();
127136 }
128137 greeter.hide();
129138 }
130139
131140 onFocusedApplicationIdChanged: {
132− if (LightDM.Greeter.active && ApplicationManager.focusedApplicationId === "dialer-app") {
133− // Always let the dialer-app through, by starting an emergency call.
134− // Likely the user just accepted an incoming call via notification.
135− lockscreen.emergencyCall()
136− } else if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== ApplicationManager.focusedApplicationId) {
141+ if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== ApplicationManager.focusedApplicationId) {
137142 lockscreen.show();
138143 }
139144 panel.indicators.hide();
@@ -235,11 +240,7 @@ Item {
235240
236241 onEntered: LightDM.Greeter.respond(passphrase);
237242 onCancel: greeter.show()
238− onEmergencyCall: {
239− greeter.fakeActiveForApp = "dialer-app"
240− shell.activateApplication("dialer-app")
241− lockscreen.hide()
242− }
243+ onEmergencyCall: shell.activateApplication("dialer-app") // will automatically enter fake-active mode
243244
244245 onShownChanged: if (shown) greeter.fakeActiveForApp = ""
245246