コード例 #1
0
ファイル: mmkeyosd.c プロジェクト: dapus/mmkeyosd
int
handle_xerror(Display *dpy, XErrorEvent *ee) {
	if(ee->error_code == BadWindow)
			return 0;
	else if(ee->request_code == X_GrabKey && ee->error_code == BadAccess)
		err("WARNING: Failed to grab key\n");
	else {
		err("fatal error: request code=%d, error code=%d\n",
						ee->request_code, ee->error_code);
		return xerrorxlib(dpy, ee); /* may call exit */
	}
	return 0;
}
コード例 #2
0
ファイル: main.c プロジェクト: csimons/cswm
/* There's no sy to check accesses to destroyed windows, thus those cases are
 * ignored (especially on UnmapNotify's).  Other types of errors call Xlibs
 * default error handler, which may call exit.
 */
int
xerror(Display *dpy, XErrorEvent *ee) {
    if(ee->error_code == BadWindow
            || (ee->request_code == X_SetInputFocus && ee->error_code == BadMatch)
            || (ee->request_code == X_PolyText8 && ee->error_code == BadDrawable)
            || (ee->request_code == X_PolyFillRectangle && ee->error_code == BadDrawable)
            || (ee->request_code == X_PolySegment && ee->error_code == BadDrawable)
            || (ee->request_code == X_ConfigureWindow && ee->error_code == BadMatch)
            || (ee->request_code == X_GrabKey && ee->error_code == BadAccess)
            || (ee->request_code == X_CopyArea && ee->error_code == BadDrawable))
        return 0;
    fprintf(stderr, "cswm: fatal error: request code=%d, error code=%d\n",
        ee->request_code, ee->error_code);
    return xerrorxlib(dpy, ee); /* may call exit */
}