diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-04-27 03:19:38 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2012-06-03 03:27:16 +0200 |
commit | 33f1ecab8492e686c4bd736419ca1ae33e2c6eea (patch) | |
tree | 84b34fd2784343dc19dae754a52ef5751fc54690 | |
parent | 9c17452032ed5e886f29c18c32898beb23c65d95 (diff) | |
download | tdebase-33f1ecab8492e686c4bd736419ca1ae33e2c6eea.tar.gz tdebase-33f1ecab8492e686c4bd736419ca1ae33e2c6eea.zip |
Harden lock against rare race condition that caused two password prompts to appear
Provide alternate secure dialog text string when username cannot be obtained
(cherry picked from commit e899b7beb6b0f2db8c08dfdc14c29efb99046086)
-rw-r--r-- | kdesktop/lock/lockprocess.cc | 2 | ||||
-rw-r--r-- | kdesktop/lock/securedlg.cc | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc index 3fb068b6f..80616b79c 100644 --- a/kdesktop/lock/lockprocess.cc +++ b/kdesktop/lock/lockprocess.cc @@ -1542,6 +1542,7 @@ void LockProcess::displayLockDialogIfNeeded() mBusy = true; if (mLocked) { if (checkPass()) { + trinity_desktop_lock_closing_windows = true; stopSaver(); kapp->quit(); } @@ -1882,6 +1883,7 @@ bool LockProcess::x11Event(XEvent *event) else { if (!mLocked || checkPass()) { + trinity_desktop_lock_closing_windows = true; stopSaver(); kapp->quit(); } diff --git a/kdesktop/lock/securedlg.cc b/kdesktop/lock/securedlg.cc index 68c56e7c3..f074ec75a 100644 --- a/kdesktop/lock/securedlg.cc +++ b/kdesktop/lock/securedlg.cc @@ -91,7 +91,12 @@ SecureDlg::SecureDlg(LockProcess *parent) if (userString == "") { 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 ); |