equal
deleted
inserted
replaced
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 { |