diff options
Diffstat (limited to 'src/utils.c')
-rw-r--r-- | src/utils.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c new file mode 100644 index 0000000..c99e74c --- /dev/null +++ b/src/utils.c @@ -0,0 +1,31 @@ +#include <err.h> +#include <X11/Xlib.h> +#include "util.h" + +void +otherwm(void) +{ + XSetErrorHandler(otherwmerr); + XChangeWindowAttributes(dpy, root, CWEventMask, + &(XSetWindowAttributes){.event_mask = SubstructureRedirectMask}); + XSync(dpy, False); + XSetErrorHandler(xerr); + XSync(dpy, False); +} + +int +otherwmerr(Display *dpy, XErrorEvent *ee) +{ + errx(0, "sxwm: another window manager is already running, please close it"); + return 0; + if (dpy && ee) return 0; +} + +int +xerr(Display *dpy, XErrorEvent *ee) +{ + fprintf(stderr, "sxwm: fatal error\nrequest code:%d\nerror code:%d", + ee->request_code, ee->error_code); + return 0; + if (dpy && ee) return 0; +} |