summaryrefslogtreecommitdiffstats
path: root/kdesktop/lock/lockprocess.cc
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-09-15 07:33:07 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-09-15 07:33:07 +0000
commit1039f2df32eb011fd4013167ac20ecdc607e1c7b (patch)
treedfded40b0c1cc3f8bba06c4c2086960121f73608 /kdesktop/lock/lockprocess.cc
parentf6af340515ca0f5405ee4b893e24630450e07d4a (diff)
downloadtdebase-1039f2df32eb011fd4013167ac20ecdc607e1c7b.tar.gz
tdebase-1039f2df32eb011fd4013167ac20ecdc607e1c7b.zip
Enhance SAK appearance
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1253791 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kdesktop/lock/lockprocess.cc')
-rw-r--r--kdesktop/lock/lockprocess.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index 206dc9718..17de269bf 100644
--- a/kdesktop/lock/lockprocess.cc
+++ b/kdesktop/lock/lockprocess.cc
@@ -134,6 +134,7 @@ extern bool trinity_desktop_lock_use_sak;
extern bool trinity_desktop_lock_forced;
bool trinity_desktop_lock_autohide_lockdlg = TRUE;
+bool trinity_desktop_lock_closing_windows = FALSE;
#define ENABLE_CONTINUOUS_LOCKDLG_DISPLAY \
if (!mForceContinualLockDisplayTimer->isActive()) mForceContinualLockDisplayTimer->start(100, FALSE); \
@@ -316,15 +317,24 @@ static void sighup_handler(int)
bool LockProcess::closeCurrentWindow()
{
+ trinity_desktop_lock_closing_windows = TRUE;
if (currentDialog != NULL) {
mForceReject = true;
- currentDialog->close();
+ if (dynamic_cast<SAKDlg*>(currentDialog)) {
+ dynamic_cast<SAKDlg*>(currentDialog)->closeDialogForced();
+ }
+ else {
+ currentDialog->close();
+ }
}
if( mDialogs.isEmpty() ) {
+ trinity_desktop_lock_closing_windows = FALSE;
+ mForceReject = false;
return false;
}
else {
+ trinity_desktop_lock_closing_windows = TRUE;
return true;
}
}
@@ -1402,6 +1412,8 @@ bool LockProcess::checkPass()
// Wait for SAK press before continuing...
SAKDlg inDlg( this );
int ret = execDialog( &inDlg );
+ if (trinity_desktop_lock_closing_windows)
+ return 0;
}
showVkbd();