--- ./src/kernel/qwindowsystem_qws.cpp~sigsegv 2003-03-18 18:29:00.000000000 -0600 +++ ./src/kernel/qwindowsystem_qws.cpp 2003-03-18 19:09:08.000000000 -0600 @@ -843,6 +843,18 @@ { } +static void catchSegvSignal( int ) +{ +#ifndef QT_NO_QWS_KEYBOARD + if ( qwsServer ) + qwsServer->closeKeyboard(); +#endif + QWSServer::closedown(); + fprintf(stderr, "Segmentation fault.\n"); + exit(1); +} + + /*! \class QWSServer qwindowsystem_qws.h \brief Server-specific functionality in Qt/Embedded @@ -912,6 +924,7 @@ } signal(SIGPIPE, ignoreSignal); //we get it when we read + signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash #endif focusw = 0; mouseGrabber = 0;