on xenial help sign in
Close race between hideGreeter and PAM
341a832Michael Terry
qml/Shell.qml+13
@@ -340,6 +340,10 @@ Item {
340 onHideGreeter: greeter.login()
340 onHideGreeter: greeter.login()
341
341
342 onShowPrompt: {
342 onShowPrompt: {
343+ shell.enabled = true;
344+ if (!LightDM.Greeter.active) {
345+ return; // could happen if hideGreeter() comes in before we prompt
346+ }
343 if (greeter.narrowMode) {
347 if (greeter.narrowMode) {
344 if (isDefaultPrompt) {
348 if (isDefaultPrompt) {
345 if (lockscreen.alphaNumeric) {
349 if (lockscreen.alphaNumeric) {
@@ -360,6 +364,9 @@ Item {
360 }
364 }
361
365
362 onPromptlessChanged: {
366 onPromptlessChanged: {
367+ if (!LightDM.Greeter.active) {
368+ return; // could happen if hideGreeter() comes in before we prompt
369+ }
363 if (LightDM.Greeter.promptless && LightDM.Greeter.authenticated) {
370 if (LightDM.Greeter.promptless && LightDM.Greeter.authenticated) {
364 lockscreen.hide()
371 lockscreen.hide()
365 } else {
372 } else {
@@ -369,6 +376,7 @@ Item {
369 }
376 }
370
377
371 onAuthenticationComplete: {
378 onAuthenticationComplete: {
379+ shell.enabled = true;
372 if (LightDM.Greeter.authenticated) {
380 if (LightDM.Greeter.authenticated) {
373 AccountsService.failedLogins = 0
381 AccountsService.failedLogins = 0
374 }
382 }
@@ -489,6 +497,11 @@ Item {
489
497
490 onShownChanged: {
498 onShownChanged: {
491 if (shown) {
499 if (shown) {
500+ // Disable everything so that user can't swipe greeter or
501+ // launcher until we get first prompt/authenticate, which
502+ // will re-enable the shell.
503+ shell.enabled = false;
504+
492 if (greeter.narrowMode) {
505 if (greeter.narrowMode) {
493 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
506 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
494 }
507 }