diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2015-04-08 15:13:08 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2015-04-14 02:27:23 +0200 |
commit | d9fe0f0bf3ffa245e094e9d86da3b92a33d27bb9 (patch) | |
tree | 20979d92829808e36d5ff17557a301a8f2486da7 /kdesktop/lockeng.h | |
parent | 15e069f3e078dd97e7cc99a66b77b2647a82c53d (diff) | |
download | tdebase-d9fe0f0bf3ffa245e094e9d86da3b92a33d27bb9.tar.gz tdebase-d9fe0f0bf3ffa245e094e9d86da3b92a33d27bb9.zip |
Remove external dcop call and associated thread
Fix lockup on lock screen command due to signal race condition
(cherry picked from commit e80c2baea0319decdad80c3c98cc7b28a010b0f0)
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; |