summaryrefslogtreecommitdiffstats
path: root/kdesktop/lockeng.h
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2015-04-08 15:13:08 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2015-04-08 15:13:08 -0500
commite80c2baea0319decdad80c3c98cc7b28a010b0f0 (patch)
treefe2e7a77c80f4d8031646f4256670b91ed53a3d8 /kdesktop/lockeng.h
parent755776b6c4875dddd0fa2971845252274215d86a (diff)
downloadtdebase-e80c2baea0319decdad80c3c98cc7b28a010b0f0.tar.gz
tdebase-e80c2baea0319decdad80c3c98cc7b28a010b0f0.zip
Remove external dcop call and associated thread
Fix lockup on lock screen command due to signal race condition
Diffstat (limited to 'kdesktop/lockeng.h')
-rw-r--r--kdesktop/lockeng.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/kdesktop/lockeng.h b/kdesktop/lockeng.h
index 70bde3281..8da2c7959 100644
--- a/kdesktop/lockeng.h
+++ b/kdesktop/lockeng.h
@@ -82,6 +82,17 @@ public:
*/
virtual void saverLockReady();
+ /**
+ * @internal
+ */
+ void lockScreen(bool DCOP = false);
+
+ /**
+ * Called by KDesktop to wait for saver engage
+ * @internal
+ */
+ void waitForLockEngage();
+
public slots:
void slotLockProcessWaiting();
void slotLockProcessFullyActivated();
@@ -113,6 +124,7 @@ private:
void onDBusServiceUnregistered(const TQString&);
protected:
+ enum SaverState { Waiting, Preparing, Engaging, Saving };
enum LockType { DontLock, DefaultLock, ForceLock, SecureDialog };
bool startLockProcess( LockType lock_type );
void stopLockProcess();
@@ -121,12 +133,11 @@ protected:
xautolock_corner_t applyManualSettings(int);
protected:
- enum State { Waiting, Preparing, Saving };
bool mEnabled;
- State mState;
+ SaverState mState;
XAutoLock *mXAutoLock;
- TDEProcess mLockProcess;
+ TDEProcess mLockProcess;
int mTimeout;
// the original X screensaver parameters
@@ -142,6 +153,7 @@ private:
TDEProcess* mSAKProcess;
bool mTerminationRequested;
bool mSaverProcessReady;
+ struct sigaction mSignalAction;
TQT_DBusConnection dBusConn;
TQT_DBusProxy* dBusLocal;
TQT_DBusProxy* dBusWatch;