comparison libvo/x11_common.c @ 4742:a34682347090

added local X11 error handler (call player_exit)
author alex
date Sun, 17 Feb 2002 12:34:29 +0000
parents 93d562ad1c22
children b18e61cb457a
comparison
equal deleted inserted replaced
4741:d3a52470594c 4742:a34682347090
133 } 133 }
134 return bestvisual_depth; 134 return bestvisual_depth;
135 } 135 }
136 #endif 136 #endif
137 137
138 static void x11_errorhandler(Display *display, XErrorEvent *event)
139 {
140 #define MSGLEN 60
141 char msg[MSGLEN];
142
143 XGetErrorText(display, event->error_code, &msg, MSGLEN);
144
145 printf("X11 error: %s\n", msg);
146
147 if (verbose)
148 {
149 printf("Type: %x, display: %x, resourceid: %x, serial: %x\n",
150 event->type, event->display, event->resourceid, event->serial);
151 printf("Error code: %x, request code: %x, minor code: %x\n",
152 event->error_code, event->request_code, event->minor_code);
153 }
154
155 exit_player("X11 error");
156 #undef MSGLEN
157 }
138 158
139 int vo_init( void ) 159 int vo_init( void )
140 { 160 {
141 // int mScreen; 161 // int mScreen;
142 int depth, bpp; 162 int depth, bpp;
238 if (*mDisplayName==':') mLocalDisplay=1; else mLocalDisplay=0; 258 if (*mDisplayName==':') mLocalDisplay=1; else mLocalDisplay=0;
239 printf("vo: X11 running at %dx%d with depth %d and %d bits/pixel (\"%s\" => %s display)\n", 259 printf("vo: X11 running at %dx%d with depth %d and %d bits/pixel (\"%s\" => %s display)\n",
240 vo_screenwidth,vo_screenheight, 260 vo_screenwidth,vo_screenheight,
241 depth, vo_depthonscreen, 261 depth, vo_depthonscreen,
242 mDisplayName,mLocalDisplay?"local":"remote"); 262 mDisplayName,mLocalDisplay?"local":"remote");
263
264 XSetErrorHandler(x11_errorhandler);
265
243 return 1; 266 return 1;
244 } 267 }
245 268
246 269
247 #include "../linux/keycodes.h" 270 #include "../linux/keycodes.h"
385 } 408 }
386 #endif 409 #endif
387 410
388 int vo_x11_uninit(Display *display, Window window) 411 int vo_x11_uninit(Display *display, Window window)
389 { 412 {
413 XSetErrorHandler(NULL);
414
390 #ifdef HAVE_NEW_GUI 415 #ifdef HAVE_NEW_GUI
391 /* destroy window only if it's not controlled by GUI */ 416 /* destroy window only if it's not controlled by GUI */
392 if (vo_window == None) 417 if (vo_window == None)
393 #endif 418 #endif
394 { 419 {