summaryrefslogtreecommitdiffstats
path: root/opensuse/tdebase/teach-minicli-lock.diff
diff options
context:
space:
mode:
Diffstat (limited to 'opensuse/tdebase/teach-minicli-lock.diff')
-rw-r--r--opensuse/tdebase/teach-minicli-lock.diff30
1 files changed, 30 insertions, 0 deletions
diff --git a/opensuse/tdebase/teach-minicli-lock.diff b/opensuse/tdebase/teach-minicli-lock.diff
new file mode 100644
index 000000000..73bd7da1e
--- /dev/null
+++ b/opensuse/tdebase/teach-minicli-lock.diff
@@ -0,0 +1,30 @@
+Index: kdesktop/minicli.cpp
+===================================================================
+--- kdesktop/minicli.cpp.orig
++++ kdesktop/minicli.cpp
+@@ -265,7 +265,9 @@ void Minicli::accept()
+ }
+
+ bool logout = (cmd == "logout");
+- if( !logout && runCommand() == 1 )
++ bool lock = (cmd == "lock");
++
++ if( !logout && !lock && runCommand() == 1 )
+ return;
+
+ m_dlg->cbCommand->addToHistory( m_dlg->cbCommand->currentText().stripWhiteSpace() );
+@@ -278,6 +280,14 @@ void Minicli::accept()
+ kapp->propagateSessionManager();
+ kapp->requestShutDown();
+ }
++ if ( lock )
++ {
++ QCString appname( "kdesktop" );
++ int kicker_screen_number = qt_xscreen();
++ if ( kicker_screen_number )
++ appname.sprintf("kdesktop-screen-%d", kicker_screen_number);
++ kapp->dcopClient()->send(appname, "KScreensaverIface", "lock()", "");
++ }
+ }
+
+ void Minicli::reject()