diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2015-04-08 15:13:08 -0500 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2015-04-08 15:13:08 -0500 |
commit | e80c2baea0319decdad80c3c98cc7b28a010b0f0 (patch) | |
tree | fe2e7a77c80f4d8031646f4256670b91ed53a3d8 /kdesktop/lockeng.h | |
parent | 755776b6c4875dddd0fa2971845252274215d86a (diff) | |
download | tdebase-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.h | 18 |
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; |