Harden lock against rare race condition that caused two password prompts to appear

Provide alternate secure dialog text string when username cannot be obtained
pull/2/head
Timothy Pearson 12 years ago
parent 601b75a1e4
commit e899b7beb6

@ -1542,6 +1542,7 @@ void LockProcess::displayLockDialogIfNeeded()
mBusy = true; mBusy = true;
if (mLocked) { if (mLocked) {
if (checkPass()) { if (checkPass()) {
trinity_desktop_lock_closing_windows = true;
stopSaver(); stopSaver();
kapp->quit(); kapp->quit();
} }
@ -1882,6 +1883,7 @@ bool LockProcess::x11Event(XEvent *event)
else { else {
if (!mLocked || checkPass()) if (!mLocked || checkPass())
{ {
trinity_desktop_lock_closing_windows = true;
stopSaver(); stopSaver();
kapp->quit(); kapp->quit();
} }

@ -91,7 +91,12 @@ SecureDlg::SecureDlg(LockProcess *parent)
if (userString == "") { if (userString == "") {
userString = user.loginName(); userString = user.loginName();
} }
mLogonStatus->setText(i18n("'%1' is currently logged on").arg( user.fullName() )); if (userString != "") {
mLogonStatus->setText(i18n("'%1' is currently logged on").arg( user.fullName() ));
}
else {
mLogonStatus->setText(i18n("You are currently logged on")); // We should never get here, and this message is somewhat obtuse, but it is better than displaying two qotation marks with no text between them...
}
KSeparator *sep = new KSeparator( KSeparator::HLine, frame ); KSeparator *sep = new KSeparator( KSeparator::HLine, frame );

Loading…
Cancel
Save