diff options
author | Timothy Pearson <[email protected]> | 2015-04-13 00:48:27 -0500 |
---|---|---|
committer | Timothy Pearson <[email protected]> | 2015-04-13 00:48:27 -0500 |
commit | 78d33c29157b8e3a0b81c36f73ec5f958439565c (patch) | |
tree | 29387eb2e0204f58b9f4037841e30b32783308fa /kdesktop/lockeng.cc | |
parent | 37bc5cdd0e31fd9c8712c0bd88039dd474be4418 (diff) | |
download | tdebase-78d33c29157b8e3a0b81c36f73ec5f958439565c.tar.gz tdebase-78d33c29157b8e3a0b81c36f73ec5f958439565c.zip |
Ensure desktop is completely hidden before sending fullyOnline()
Do not block kdesktop process while waiting for kdesktop_lock to engage prior to VT switch/new VT requests made from within kdesktop
Diffstat (limited to 'kdesktop/lockeng.cc')
-rw-r--r-- | kdesktop/lockeng.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/kdesktop/lockeng.cc b/kdesktop/lockeng.cc index 6ce26cf4e..27b57bc51 100644 --- a/kdesktop/lockeng.cc +++ b/kdesktop/lockeng.cc @@ -22,6 +22,8 @@ #include <dcopclient.h> #include <assert.h> +#include <dmctl.h> + #include <dbus/dbus-shared.h> #include <tqdbusdata.h> #include <tqdbuserror.h> @@ -79,6 +81,8 @@ SaverEngine::SaverEngine() mSAKProcess(NULL), mTerminationRequested(false), mSaverProcessReady(false), + mNewVTAfterLockEngage(false), + mSwitchVTAfterLockEngage(-1), dBusLocal(0), dBusWatch(0), systemdSession(0) @@ -599,6 +603,15 @@ void SaverEngine::lockProcessFullyActivated() params << TQT_DBusData::fromBool(true); TQT_DBusMessage reply = systemdSession->sendWithReply("SetIdleHint", params); } + + if (mNewVTAfterLockEngage) { + DM().startReserve(); + mNewVTAfterLockEngage = false; + } + else if (mSwitchVTAfterLockEngage != -1) { + DM().switchVT(mSwitchVTAfterLockEngage); + mSwitchVTAfterLockEngage = -1; + } } void SaverEngine::slotLockProcessReady() @@ -854,6 +867,16 @@ bool SaverEngine::waitForLockEngage() { return mLockProcess.isRunning(); } +void SaverEngine::lockScreenAndDoNewSession() { + mNewVTAfterLockEngage = true; + lockScreen(); +} + +void SaverEngine::lockScreenAndSwitchSession(int vt) { + mSwitchVTAfterLockEngage = vt; + lockScreen(); +} + void SaverEngineThreadHelperObject::terminateThread() { TQEventLoop* eventLoop = TQApplication::eventLoop(); if (eventLoop) { |