diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-02-11 15:14:55 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-02-11 15:14:55 -0600 |
commit | a305c0832688209d5359c212be92f54df9561ecc (patch) | |
tree | 667f87257567f94f7cf62125c8106d3876ceeab5 /tdm/kfrontend/kgapp.cpp | |
parent | 4952641328f28a541e3fdf2200df4e1e4b11d5dd (diff) | |
download | tdebase-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.cpp | 11 |
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; |