summaryrefslogtreecommitdiffstats
path: root/kdesktop
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-04-27 03:19:38 -0500
committerSlávek Banko <slavek.banko@axis.cz>2012-06-03 03:27:16 +0200
commit33f1ecab8492e686c4bd736419ca1ae33e2c6eea (patch)
tree84b34fd2784343dc19dae754a52ef5751fc54690 /kdesktop
parent9c17452032ed5e886f29c18c32898beb23c65d95 (diff)
downloadtdebase-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)
Diffstat (limited to 'kdesktop')
-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 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 );