diff options
Diffstat (limited to 'opensuse/tdebase/ksmserver-kdeinit.diff')
-rw-r--r-- | opensuse/tdebase/ksmserver-kdeinit.diff | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/opensuse/tdebase/ksmserver-kdeinit.diff b/opensuse/tdebase/ksmserver-kdeinit.diff deleted file mode 100644 index a21b92dc8..000000000 --- a/opensuse/tdebase/ksmserver-kdeinit.diff +++ /dev/null @@ -1,67 +0,0 @@ ---- ksmserver/server.h.sav 2009-07-23 11:44:55.000000000 +0200 -+++ ksmserver/server.h 2009-07-23 11:47:52.000000000 +0200 -@@ -145,7 +145,8 @@ private: - - KProcess* startApplication( QStringList command, - const QString& clientMachine = QString::null, -- const QString& userId = QString::null ); -+ const QString& userId = QString::null, -+ bool wm = false ); - void executeCommand( const QStringList& command ); - - bool isWM( const KSMClient* client ) const; ---- ksmserver/startup.cpp.sav 2009-07-23 11:44:54.000000000 +0200 -+++ ksmserver/startup.cpp 2009-07-23 11:45:49.000000000 +0200 -@@ -168,7 +168,7 @@ void KSMServer::launchWM( const QValueLi - // when we have a window manager, we start it first and give - // it some time before launching other processes. Results in a - // visually more appealing startup. -- wmProcess = startApplication( wmStartCommands[ 0 ] ); -+ wmProcess = startApplication( wmStartCommands[ 0 ], QString(), QString(), true ); - connect( wmProcess, SIGNAL( processExited( KProcess* )), SLOT( wmProcessChange())); - // there can be possibly more wm's (because of forking for multihead), - // but in such case care only about the process of the first one ---- ksmserver/server.cpp.sav 2009-07-23 11:51:33.000000000 +0200 -+++ ksmserver/server.cpp 2009-07-23 11:49:02.000000000 +0200 -@@ -101,7 +101,7 @@ KSMServer* KSMServer::self() - * to restart applications. - */ - KProcess* KSMServer::startApplication( QStringList command, const QString& clientMachine, -- const QString& userId ) -+ const QString& userId, bool wm ) - { - if ( command.isEmpty() ) - return NULL; -@@ -118,12 +118,26 @@ KProcess* KSMServer::startApplication( Q - command.prepend( clientMachine ); - command.prepend( xonCommand ); // "xon" by default - } -- KProcess* process = new KProcess( this ); -- *process << command; -- // make it auto-delete -- connect( process, SIGNAL( processExited( KProcess* )), process, SLOT( deleteLater())); -- process->start(); -- return process; -+// TODO this function actually should not use KProcess at all and use klauncher (kdeinit) instead. -+// Klauncher should also have support for tracking whether the launched process is still alive -+// or not, so this should be redone. For now, use KProcess for wm's, as they need to be tracked, -+// klauncher for the rest where ksmserver doesn't care. -+ if( wm ) { -+ KProcess* process = new KProcess( this ); -+ *process << command; -+ // make it auto-delete -+ connect( process, SIGNAL( processExited( KProcess* )), process, SLOT( deleteLater())); -+ process->start(); -+ return process; -+ } else { -+ int n = command.count(); -+ QCString app = command[0].latin1(); -+ QValueList<QCString> argList; -+ for ( int i=1; i < n; i++) -+ argList.append( QCString(command[i].latin1())); -+ DCOPRef( launcher ).send( "exec_blind", app, DCOPArg( argList, "QValueList<QCString>" ) ); -+ return NULL; -+ } - } - - /*! Utility function to execute a command on the local machine. Used |