summaryrefslogtreecommitdiffstats
path: root/kdesktop/lock
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-10-12 08:22:45 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-10-12 08:22:45 +0000
commit42c5401145434f3c2d73e224e35ef3f0826229f0 (patch)
treec2a06f641b3d7a1ac0329a244c9970572131e905 /kdesktop/lock
parent8254be09141b56a1afeea5150eef679297b4b696 (diff)
downloadtdebase-42c5401145434f3c2d73e224e35ef3f0826229f0.tar.gz
tdebase-42c5401145434f3c2d73e224e35ef3f0826229f0.zip
Fix desktop lock not releasing to allow password authentication if an X11 display switch keypress was detected in certain situations
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1258629 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kdesktop/lock')
-rw-r--r--kdesktop/lock/lockprocess.cc17
1 files changed, 10 insertions, 7 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index e85ed0dbb..827ea6b21 100644
--- a/kdesktop/lock/lockprocess.cc
+++ b/kdesktop/lock/lockprocess.cc
@@ -1668,13 +1668,16 @@ void LockProcess::cleanupPopup()
void LockProcess::doFunctionKeyBroadcast() {
// Provide a clean, pretty display switch by hiding the password dialog here
- mBusy=true;
- TQTimer::singleShot(1000, this, TQT_SLOT(slotDeadTimePassed()));
- if (mkeyCode == XKeysymToKeycode(qt_xdisplay(), XF86XK_Display)) {
- while (mDialogControlLock == true) sleep(1);
- mDialogControlLock = true;
- closeCurrentWindow();
- mDialogControlLock = false;
+ // This does NOT work with the SAK or system modal dialogs!
+ if ((!trinity_desktop_lock_use_system_modal_dialogs) && (!trinity_desktop_lock_use_sak)) {
+ mBusy=true;
+ TQTimer::singleShot(1000, this, TQT_SLOT(slotDeadTimePassed()));
+ if (mkeyCode == XKeysymToKeycode(qt_xdisplay(), XF86XK_Display)) {
+ while (mDialogControlLock == true) sleep(1);
+ mDialogControlLock = true;
+ currentDialog->close(); // DO NOT use closeCurrentWindow() here!
+ mDialogControlLock = false;
+ }
}
setCursor( tqblankCursor );