summaryrefslogtreecommitdiffstats
path: root/tdmlib/dmctl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdmlib/dmctl.cpp')
-rw-r--r--tdmlib/dmctl.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/tdmlib/dmctl.cpp b/tdmlib/dmctl.cpp
index c4fc0a5dd..6ee7722a2 100644
--- a/tdmlib/dmctl.cpp
+++ b/tdmlib/dmctl.cpp
@@ -392,13 +392,17 @@ DM::switchVT( int vt )
void
DM::lockSwitchVT( int vt )
{
- if (switchVT( vt )) {
+ if (isSwitchable()) {
TQByteArray data;
TQCString replyType;
TQByteArray replyData;
// Block here until lock is complete
// If this is not done the desktop of the locked session will be shown after VT switch until the lock fully engages!
kapp->dcopClient()->call("kdesktop", "KScreensaverIface", "lock()", data, replyType, replyData);
+ if (!switchVT( vt )) {
+ // Switching VT failed; unlock...
+ kapp->dcopClient()->call("kdesktop", "KScreensaverIface", "unlock()", data, replyType, replyData);
+ }
}
}