@@ -139,29 +139,35 @@ Item {
139139 Connections {
140140 target: ApplicationManager
141141 onFocusRequested: {
142− if (appId === "dialer-app") {
143− // Always let the dialer-app through. Either user asked
144− // for an emergency call or accepted an incoming call.
145− setLockedApp(appId)
146− } else if (greeter.hasLockedApp && greeter.lockedApp !== appId) {
147− lockscreen.show();
142+ if (greeter.narrowMode) {
143+ if (appId === "dialer-app") {
144+ // Always let the dialer-app through. Either user asked
145+ // for an emergency call or accepted an incoming call.
146+ setLockedApp(appId)
147+ } else if (greeter.hasLockedApp && greeter.lockedApp !== appId) {
148+ greeter.startUnlock()
149+ }
150+ greeter.hide();
151+ launcher.hide();
152+ } else {
153+ if (LightDM.Greeter.active) {
154+ greeter.startUnlock()
155+ }
148156 }
149− greeter.hide();
150− launcher.hide();
151157 }
152158
153159 onFocusedApplicationIdChanged: {
154160 if (greeter.hasLockedApp && greeter.lockedApp !== ApplicationManager.focusedApplicationId) {
155− lockscreen.show();
161+ greeter.startUnlock()
156162 }
157163 panel.indicators.hide();
158164 }
159165
160166 onApplicationAdded: {
161167 if (greeter.shown && appId != "unity8-dash") {
162− greeter.hide();
168+ greeter.startUnlock()
163169 }
164− if (appId === "dialer-app") {
170+ if (greeter.narrowMode && appId === "dialer-app") {
165171 // Always let the dialer-app through. Either user asked
166172 // for an emergency call or accepted an incoming call.
167173 setLockedApp(appId)
@@ -306,11 +312,13 @@ Item {
306312 }
307313
308314 onPromptlessChanged: {
309− if (LightDM.Greeter.promptless && LightDM.Greeter.authenticated) {
310− lockscreen.hide()
311− } else {
312− lockscreen.reset();
313− lockscreen.show();
315+ if (greeter.narrowMode) {
316+ if (LightDM.Greeter.promptless && LightDM.Greeter.authenticated) {
317+ lockscreen.hide()
318+ } else {
319+ lockscreen.reset();
320+ lockscreen.show();
321+ }
314322 }
315323 }
316324
@@ -384,7 +392,7 @@ Item {
384392 property bool fullyShown: showProgress === 1.0
385393 onFullyShownChanged: {
386394 // Wait until the greeter is completely covering lockscreen before resetting it.
387− if (fullyShown && !LightDM.Greeter.authenticated) {
395+ if (greeter.narrowMode && fullyShown && !LightDM.Greeter.authenticated) {
388396 lockscreen.reset();
389397 lockscreen.show();
390398 }
@@ -414,6 +422,18 @@ Item {
414422
415423 dragHandleWidth: shell.edgeSize
416424
425+ function startUnlock() {
426+ if (narrowMode) {
427+ if (!LightDM.Greeter.authenticated) {
428+ lockscreen.show()
429+ }
430+ hide()
431+ } else {
432+ show()
433+ tryToUnlock()
434+ }
435+ }
436+
417437 function login() {
418438 enabled = false;
419439 if (LightDM.Greeter.startSessionSync()) {
@@ -429,6 +449,8 @@ Item {
429449 if (shown) {
430450 if (greeter.narrowMode) {
431451 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
452+ } else {
453+ reset()
432454 }
433455 greeter.lockedApp = "";
434456 greeter.forceActiveFocus();
@@ -475,10 +497,7 @@ Item {
475497 }
476498
477499 if (LightDM.Greeter.active) {
478− if (!LightDM.Greeter.authenticated) {
479− lockscreen.show()
480− }
481− greeter.hide()
500+ greeter.startUnlock()
482501 }
483502
484503 var animate = !LightDM.Greeter.active && !stages.shown
@@ -546,7 +565,7 @@ Item {
546565 }
547566 onLauncherApplicationSelected: {
548567 if (greeter.hasLockedApp) {
549− lockscreen.show()
568+ greeter.startUnlock()
550569 }
551570 if (!edgeDemo.running)
552571 shell.activateApplication(appId)