main.c
changeset 455 4e3e22673073
parent 446 a2e587651c79
child 458 81fcd7ddafee
equal deleted inserted replaced
454:ffb462fb7903 455:4e3e22673073
   212 }
   212 }
   213 
   213 
   214 /*
   214 /*
   215  * There's no way to check accesses to destroyed windows, thus those cases are
   215  * There's no way to check accesses to destroyed windows, thus those cases are
   216  * ignored (especially on UnmapNotify's).  Other types of errors call Xlibs
   216  * ignored (especially on UnmapNotify's).  Other types of errors call Xlibs
   217  * default error handler, which calls exit().
   217  * default error handler, which may call exit.
   218  */
   218  */
   219 int
   219 int
   220 xerror(Display *dpy, XErrorEvent *ee)
   220 xerror(Display *dpy, XErrorEvent *ee)
   221 {
   221 {
   222 	if(ee->error_code == BadWindow
   222 	if(ee->error_code == BadWindow
   227 	|| (ee->request_code == X_ConfigureWindow && ee->error_code == BadMatch)
   227 	|| (ee->request_code == X_ConfigureWindow && ee->error_code == BadMatch)
   228 	|| (ee->request_code == X_GrabKey && ee->error_code == BadAccess))
   228 	|| (ee->request_code == X_GrabKey && ee->error_code == BadAccess))
   229 		return 0;
   229 		return 0;
   230 	fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n",
   230 	fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n",
   231 		ee->request_code, ee->error_code);
   231 		ee->request_code, ee->error_code);
   232 	return xerrorxlib(dpy, ee); /* may call exit() */
   232 	return xerrorxlib(dpy, ee); /* may call exit */
   233 }
   233 }
   234 
   234 
   235 int
   235 int
   236 main(int argc, char *argv[])
   236 main(int argc, char *argv[])
   237 {
   237 {