Terminate twin manager unless a TDE or failsafe session was selected

This closes Bug 824
pull/2/head
Timothy Pearson 14 years ago
parent 4952641328
commit a305c08326

@ -257,6 +257,7 @@ kg_main( const char *argv0 )
XSetIOErrorHandler( xIOErr ); XSetIOErrorHandler( xIOErr );
TQString login_user; TQString login_user;
TQString login_session_wm;
Display *dpy = qt_xdisplay(); Display *dpy = qt_xdisplay();
@ -409,6 +410,7 @@ kg_main( const char *argv0 )
Debug( "left event loop\n" ); Debug( "left event loop\n" );
login_user = static_cast<KGreeter*>(dialog)->curUser; login_user = static_cast<KGreeter*>(dialog)->curUser;
login_session_wm = static_cast<KGreeter*>(dialog)->curWMSession;
if (rslt != ex_greet) { if (rslt != ex_greet) {
delete dialog; delete dialog;
@ -451,8 +453,13 @@ kg_main( const char *argv0 )
delete comp; delete comp;
} }
if (twin) { if (twin) {
if (login_session_wm.endsWith("/starttde") || (login_session_wm == "failsafe")) {
twin->closeStdin(); twin->closeStdin();
twin->detach(); twin->detach();
}
else {
twin->kill();
}
delete twin; delete twin;
} }
delete proc; delete proc;

@ -842,10 +842,12 @@ KGreeter::verifyOk()
GSendInt( G_PutDmrc ); GSendInt( G_PutDmrc );
GSendStr( "Session" ); GSendStr( "Session" );
GSendStr( sessionTypes[curSel].type.utf8() ); GSendStr( sessionTypes[curSel].type.utf8() );
curWMSession = sessionTypes[curSel].type.utf8();
} else if (!prevValid) { } else if (!prevValid) {
GSendInt( G_PutDmrc ); GSendInt( G_PutDmrc );
GSendStr( "Session" ); GSendStr( "Session" );
GSendStr( "default" ); GSendStr( "default" );
curWMSession = sessionTypes[curSel].type.utf8();
} }
GSendInt( G_Ready ); GSendInt( G_Ready );
closingDown = true; closingDown = true;

@ -75,7 +75,7 @@ class KGreeter : public KGDialog, public KGVerifyHandler {
void handleInputPipe(); void handleInputPipe();
public: public:
TQString curUser, dName; TQString curUser, curWMSession, dName;
protected: protected:
void readFacesList(); void readFacesList();

Loading…
Cancel
Save