diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-10-12 08:22:45 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-10-12 08:22:45 +0000 |
commit | 42c5401145434f3c2d73e224e35ef3f0826229f0 (patch) | |
tree | c2a06f641b3d7a1ac0329a244c9970572131e905 /kdesktop/lock/lockprocess.cc | |
parent | 8254be09141b56a1afeea5150eef679297b4b696 (diff) | |
download | tdebase-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/lockprocess.cc')
-rw-r--r-- | kdesktop/lock/lockprocess.cc | 17 |
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 ); |