LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File teach-minicli-lock.diff of Package kdebase3 (Project openSUSE:Factory)

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()