@@ -387,7 +387,15 @@ Item {
387387
388388 onShowPrompt: {
389389 if (greeter.narrowMode) {
390− lockscreen.placeholderText = i18n.tr("Please enter %1").arg(text.toLowerCase());
390+ var promptText = text.toLowerCase()
391+ if (promptText === "password") {
392+ promptText = lockscreen.alphaNumeric ?
393+ i18n.tr("passphrase") : i18n.tr("passcode")
394+ }
395+ lockscreen.placeholderText = i18n.tr("Enter your %1").arg(promptText)
396+ lockscreen.wrongPlaceholderText = i18n.tr("Incorrect %1").arg(promptText) +
397+ "\n" +
398+ i18n.tr("Please re-enter")
391399 lockscreen.show();
392400 }
393401 }
@@ -460,6 +468,14 @@ Item {
460468 }
461469
462470 property bool fullyShown: showProgress === 1.0
471+ onFullyShownChanged: {
472+ // Wait until the greeter is completely covering lockscreen before resetting it.
473+ if (fullyShown && !LightDM.Greeter.authenticated) {
474+ lockscreen.reset();
475+ lockscreen.show();
476+ }
477+ }
478+
463479 readonly property real showProgress: MathUtils.clamp((1 - x/width) + greeter.showProgress - 1, 0, 1)
464480 onShowProgressChanged: if (LightDM.Greeter.authenticated && showProgress === 0) greeter.login()
465481
@@ -498,10 +514,6 @@ Item {
498514 if (greeter.narrowMode) {
499515 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
500516 }
501− if (!LightDM.Greeter.authenticated) {
502− lockscreen.reset();
503− lockscreen.show();
504− }
505517 greeter.fakeActiveForApp = "";
506518 greeter.forceActiveFocus();
507519 }