diff --git a/src/wmfs.c b/src/wmfs.c index 4d13d92..3ca5a6b 100644 --- a/src/wmfs.c +++ b/src/wmfs.c @@ -32,6 +32,28 @@ #include "wmfs.h" + +void +checkotherwm(void) +{ + owm = False; + + XSetErrorHandler(errorhandlerstart); + XSelectInput(dpy, DefaultRootWindow(dpy), SubstructureRedirectMask); + XSync(dpy, False); + + if(owm) + { + fprintf(stderr, "WMFS Error: Another Window Manager is already running.\n"); + exit(EXIT_FAILURE); + } + + XSetErrorHandler(errorhandler); + XSync(dpy, False); + + return; +} + int errorhandler(Display *d, XErrorEvent *event) { @@ -301,18 +323,7 @@ main(int argc, char **argv) } /* Check if an other WM is already running */ - owm = False; - - XSetErrorHandler(errorhandlerstart); - XSelectInput(dpy, DefaultRootWindow(dpy), SubstructureRedirectMask); - XSync(dpy, False); - if(owm) - { - fprintf(stderr, "WMFS Error: Another Window Manager is already running.\n"); - exit(EXIT_FAILURE); - } - XSetErrorHandler(errorhandler); - XSync(dpy, False); + checkotherwm(); /* Let's Go ! */ init_conf(); diff --git a/src/wmfs.h b/src/wmfs.h index aa3696b..a0d4151 100644 --- a/src/wmfs.h +++ b/src/wmfs.h @@ -157,6 +157,7 @@ void uicb_set_mwfact(uicb_t); void uicb_set_nmaster(uicb_t); /* wmfs.c */ +void checkotherwm(void); int errorhandler(Display *d, XErrorEvent *event); int errorhandlerdummy(Display *d, XErrorEvent *event); int errorhandlerstart(Display *d, XErrorEvent *event);