summaryrefslogtreecommitdiffstats
path: root/tdm/kfrontend/kgapp.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-02-11 15:14:55 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-02-11 15:14:55 -0600
commita305c0832688209d5359c212be92f54df9561ecc (patch)
tree667f87257567f94f7cf62125c8106d3876ceeab5 /tdm/kfrontend/kgapp.cpp
parent4952641328f28a541e3fdf2200df4e1e4b11d5dd (diff)
downloadtdebase-a305c0832688209d5359c212be92f54df9561ecc.tar.gz
tdebase-a305c0832688209d5359c212be92f54df9561ecc.zip
Terminate twin manager unless a TDE or failsafe session was selected
This closes Bug 824
Diffstat (limited to 'tdm/kfrontend/kgapp.cpp')
-rw-r--r--tdm/kfrontend/kgapp.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/tdm/kfrontend/kgapp.cpp b/tdm/kfrontend/kgapp.cpp
index 5ad52dda6..f6123891c 100644
--- a/tdm/kfrontend/kgapp.cpp
+++ b/tdm/kfrontend/kgapp.cpp
@@ -257,6 +257,7 @@ kg_main( const char *argv0 )
XSetIOErrorHandler( xIOErr );
TQString login_user;
+ TQString login_session_wm;
Display *dpy = qt_xdisplay();
@@ -409,6 +410,7 @@ kg_main( const char *argv0 )
Debug( "left event loop\n" );
login_user = static_cast<KGreeter*>(dialog)->curUser;
+ login_session_wm = static_cast<KGreeter*>(dialog)->curWMSession;
if (rslt != ex_greet) {
delete dialog;
@@ -451,8 +453,13 @@ kg_main( const char *argv0 )
delete comp;
}
if (twin) {
- twin->closeStdin();
- twin->detach();
+ if (login_session_wm.endsWith("/starttde") || (login_session_wm == "failsafe")) {
+ twin->closeStdin();
+ twin->detach();
+ }
+ else {
+ twin->kill();
+ }
delete twin;
}
delete proc;