summaryrefslogtreecommitdiffstats
path: root/kdesktop/lockeng.h
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2015-04-08 15:13:08 -0500
committerSlávek Banko <[email protected]>2015-04-14 02:27:23 +0200
commitd9fe0f0bf3ffa245e094e9d86da3b92a33d27bb9 (patch)
tree20979d92829808e36d5ff17557a301a8f2486da7 /kdesktop/lockeng.h
parent15e069f3e078dd97e7cc99a66b77b2647a82c53d (diff)
downloadtdebase-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.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;