@@ -139,29 +139,35 @@ Item {
139 Connections {
139 Connections {
140 target: ApplicationManager
140 target: ApplicationManager
141 onFocusRequested: {
141 onFocusRequested: {
142+ if (greeter.narrowMode) {
142− if (appId === "dialer-app") {
143+ if (appId === "dialer-app") {
143− // Always let the dialer-app through. Either user asked
144+ // Always let the dialer-app through. Either user asked
144− // for an emergency call or accepted an incoming call.
145+ // for an emergency call or accepted an incoming call.
145− setLockedApp(appId)
146+ setLockedApp(appId)
146− } else if (greeter.hasLockedApp && greeter.lockedApp !== appId) {
147+ } else if (greeter.hasLockedApp && greeter.lockedApp !== appId) {
147− lockscreen.show();
148+ greeter.startUnlock()
153+ if (LightDM.Greeter.active) {
154+ greeter.startUnlock()
153 onFocusedApplicationIdChanged: {
159 onFocusedApplicationIdChanged: {
154 if (greeter.hasLockedApp && greeter.lockedApp !== ApplicationManager.focusedApplicationId) {
160 if (greeter.hasLockedApp && greeter.lockedApp !== ApplicationManager.focusedApplicationId) {
155− lockscreen.show();
161+ greeter.startUnlock()
157 panel.indicators.hide();
163 panel.indicators.hide();
160 onApplicationAdded: {
166 onApplicationAdded: {
161 if (greeter.shown && appId != "unity8-dash") {
167 if (greeter.shown && appId != "unity8-dash") {
162− greeter.hide();
168+ greeter.startUnlock()
164− if (appId === "dialer-app") {
170+ if (greeter.narrowMode && appId === "dialer-app") {
165 // Always let the dialer-app through. Either user asked
171 // Always let the dialer-app through. Either user asked
166 // for an emergency call or accepted an incoming call.
172 // for an emergency call or accepted an incoming call.
167 setLockedApp(appId)
173 setLockedApp(appId)
@@ -306,11 +312,13 @@ Item {
308 onPromptlessChanged: {
314 onPromptlessChanged: {
315+ if (greeter.narrowMode) {
309− if (LightDM.Greeter.promptless && LightDM.Greeter.authenticated) {
316+ if (LightDM.Greeter.promptless && LightDM.Greeter.authenticated) {
310− lockscreen.hide()
317+ lockscreen.hide()
311− } else {
318+ } else {
312− lockscreen.reset();
319+ lockscreen.reset();
313− lockscreen.show();
320+ lockscreen.show();
@@ -384,7 +392,7 @@ Item {
384 property bool fullyShown: showProgress === 1.0
392 property bool fullyShown: showProgress === 1.0
385 onFullyShownChanged: {
393 onFullyShownChanged: {
386 // Wait until the greeter is completely covering lockscreen before resetting it.
394 // 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) {
388 lockscreen.reset();
396 lockscreen.reset();
389 lockscreen.show();
397 lockscreen.show();
@@ -414,6 +422,18 @@ Item {
415 dragHandleWidth: shell.edgeSize
423 dragHandleWidth: shell.edgeSize
425+ function startUnlock() {
427+ if (!LightDM.Greeter.authenticated) {
417 function login() {
437 function login() {
418 enabled = false;
438 enabled = false;
419 if (LightDM.Greeter.startSessionSync()) {
439 if (LightDM.Greeter.startSessionSync()) {
@@ -429,6 +449,8 @@ Item {
429 if (shown) {
449 if (shown) {
430 if (greeter.narrowMode) {
450 if (greeter.narrowMode) {
431 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
451 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
433 greeter.lockedApp = "";
455 greeter.lockedApp = "";
434 greeter.forceActiveFocus();
456 greeter.forceActiveFocus();
@@ -475,10 +497,7 @@ Item {
477 if (LightDM.Greeter.active) {
499 if (LightDM.Greeter.active) {
478− if (!LightDM.Greeter.authenticated) {
481− greeter.hide()
500+ greeter.startUnlock()
484 var animate = !LightDM.Greeter.active && !stages.shown
503 var animate = !LightDM.Greeter.active && !stages.shown
@@ -546,7 +565,7 @@ Item {
547 onLauncherApplicationSelected: {
566 onLauncherApplicationSelected: {
548 if (greeter.hasLockedApp) {
567 if (greeter.hasLockedApp) {
549− lockscreen.show()
568+ greeter.startUnlock()
551 if (!edgeDemo.running)
570 if (!edgeDemo.running)
552 shell.activateApplication(appId)
571 shell.activateApplication(appId)