From bed76819b90b5f40a3f2813ec053c898d7d658d6 Mon Sep 17 00:00:00 2001
From: tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
Date: Fri, 23 Sep 2011 03:50:06 +0000
Subject: Fix secure dialog handling when KScreenSaver DCOP quit() interface is
 used

git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1255030 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
---
 kdesktop/lockeng.cc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/kdesktop/lockeng.cc b/kdesktop/lockeng.cc
index 62e4855a9..b957218a1 100644
--- a/kdesktop/lockeng.cc
+++ b/kdesktop/lockeng.cc
@@ -204,7 +204,7 @@ bool SaverEngine::isBlanked()
 void SaverEngine::handleSecureDialog()
 {
     // Wait for SAK press
-    mSAKProcess->start();
+    if (!mSAKProcess->isRunning()) mSAKProcess->start();
 }
 
 void SaverEngine::slotSAKProcessExited()
@@ -358,6 +358,9 @@ void SaverEngine::stopLockProcess()
 void SaverEngine::lockProcessExited()
 {
     kdDebug(1204) << "SaverEngine: lock exited" << endl;
+    if (trinity_lockeng_sak_available == TRUE) {
+        handleSecureDialog();
+    }
     if( mState == Waiting )
 	return;
     emitDCOPSignal("KDE_stop_screensaver()", TQByteArray());
@@ -372,9 +375,6 @@ void SaverEngine::lockProcessExited()
     }
     processLockTransactions();
     mState = Waiting;
-    if (trinity_lockeng_sak_available == TRUE) {
-        handleSecureDialog();
-    }
 }
 
 //---------------------------------------------------------------------------
-- 
cgit v1.2.3

