summaryrefslogtreecommitdiffstats
path: root/tdm/kfrontend
diff options
context:
space:
mode:
Diffstat (limited to 'tdm/kfrontend')
-rw-r--r--tdm/kfrontend/kgapp.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/tdm/kfrontend/kgapp.cpp b/tdm/kfrontend/kgapp.cpp
index be61c2fd8..8fa0c18f5 100644
--- a/tdm/kfrontend/kgapp.cpp
+++ b/tdm/kfrontend/kgapp.cpp
@@ -192,6 +192,7 @@ kg_main( const char *argv0 )
KProcess *tsak = 0;
KProcess *proc = 0;
KProcess *comp = 0;
+ KProcess *dcop = 0;
KProcess *twin = 0;
trinity_desktop_lock_use_sak = _useSAK;
@@ -317,6 +318,13 @@ kg_main( const char *argv0 )
}
if (!_windowManager.isEmpty()) {
+ if (_windowManager == "twin") {
+ // Special case
+ // Start DCOP...
+ dcop = new KProcess;
+ *dcop << TQCString( argv0, strrchr( argv0, '/' ) - argv0 + 2 ) + "dcopserver" << TQCString("--suicide");
+ dcop->start();
+ }
twin = new KProcess;
*twin << TQCString( argv0, strrchr( argv0, '/' ) - argv0 + 2 ) + _windowManager.ascii();
twin->start();
@@ -462,11 +470,14 @@ kg_main( const char *argv0 )
if (login_session_wm.endsWith("/starttde") || (login_session_wm == "failsafe")) {
twin->closeStdin();
twin->detach();
+ dcop->detach();
}
else {
twin->kill();
+ dcop->kill();
}
delete twin;
+ delete dcop;
}
delete proc;
UnsecureDisplay( dpy );