on xenial help sign in
Add a function for setting fake-active mode to avoid scary-sounding emergencyCall signal when all we want to do is accept an incoming call
1809d71Michael Terry
qml/Shell.qml+12−11
@@ -60,6 +60,11 @@ Item {
60 }
60 }
61 }
61 }
62
62
63+ function setFakeActiveForApp(app) {
64+ greeter.fakeActiveForApp = app
65+ lockscreen.hide()
66+ }
67+
63 Binding {
68 Binding {
64 target: LauncherModel
69 target: LauncherModel
65 property: "applicationManager"
70 property: "applicationManager"
@@ -122,18 +127,18 @@ Item {
122 Connections {
127 Connections {
123 target: ApplicationManager
128 target: ApplicationManager
124 onFocusRequested: {
129 onFocusRequested: {
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)
125− if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
134+ } else if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
126 lockscreen.show();
135 lockscreen.show();
127 }
136 }
128 greeter.hide();
137 greeter.hide();
129 }
138 }
130
139
131 onFocusedApplicationIdChanged: {
140 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) {
137 lockscreen.show();
142 lockscreen.show();
138 }
143 }
139 panel.indicators.hide();
144 panel.indicators.hide();
@@ -235,11 +240,7 @@ Item {
235
240
236 onEntered: LightDM.Greeter.respond(passphrase);
241 onEntered: LightDM.Greeter.respond(passphrase);
237 onCancel: greeter.show()
242 onCancel: greeter.show()
238− onEmergencyCall: {
239− greeter.fakeActiveForApp = "dialer-app"
240− shell.activateApplication("dialer-app")
243+ onEmergencyCall: shell.activateApplication("dialer-app") // will automatically enter fake-active mode
241− lockscreen.hide()
242− }
243
244
244 onShownChanged: if (shown) greeter.fakeActiveForApp = ""
245 onShownChanged: if (shown) greeter.fakeActiveForApp = ""
245
246