summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-04-27 03:19:38 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-04-27 03:19:38 -0500
commite899b7beb6b0f2db8c08dfdc14c29efb99046086 (patch)
tree76b9346919e552892bc28d83993501e4d4a992fa
parent601b75a1e4158dbf0c293e682d5db0078a41e736 (diff)
downloadtdebase-e899b7beb6b0f2db8c08dfdc14c29efb99046086.tar.gz
tdebase-e899b7beb6b0f2db8c08dfdc14c29efb99046086.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
-rw-r--r--kdesktop/lock/lockprocess.cc2
-rw-r--r--kdesktop/lock/securedlg.cc7
2 files changed, 8 insertions, 1 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index f1426194e..2b47661db 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 717d98cc0..08a70a17d 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 );