Update of /cvsroot/mplayer/main/libvo In directory mplayer:/var/tmp.root/cvs-serv30163 Modified Files: x11_common.c Log Message: added local X11 error handler (call player_exit) Index: x11_common.c =================================================================== RCS file: /cvsroot/mplayer/main/libvo/x11_common.c,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- x11_common.c 11 Feb 2002 11:44:50 -0000 1.48 +++ x11_common.c 17 Feb 2002 12:34:29 -0000 1.49 @@ -135,6 +135,26 @@ } #endif +static void x11_errorhandler(Display *display, XErrorEvent *event) +{ +#define MSGLEN 60 + char msg[MSGLEN]; + + XGetErrorText(display, event->error_code, &msg, MSGLEN); + + printf("X11 error: %s\n", msg); + + if (verbose) + { + printf("Type: %x, display: %x, resourceid: %x, serial: %x\n", + event->type, event->display, event->resourceid, event->serial); + printf("Error code: %x, request code: %x, minor code: %x\n", + event->error_code, event->request_code, event->minor_code); + } + + exit_player("X11 error"); +#undef MSGLEN +} int vo_init( void ) { @@ -240,6 +260,9 @@ vo_screenwidth,vo_screenheight, depth, vo_depthonscreen, mDisplayName,mLocalDisplay?"local":"remote"); + + XSetErrorHandler(x11_errorhandler); + return 1; } @@ -387,6 +410,8 @@ int vo_x11_uninit(Display *display, Window window) { + XSetErrorHandler(NULL); + #ifdef HAVE_NEW_GUI /* destroy window only if it's not controlled by GUI */ if (vo_window == None)