+
+ wa.override_redirect = 1;
+ wa.background_pixel = BlackPixel(dpy, screen);
+ w = XCreateWindow(dpy, RootWindow(dpy, screen), 0, 0,
+ DisplayWidth(dpy, screen), DisplayHeight(dpy, screen),
+ 0, DefaultDepth(dpy, screen), CopyFromParent,
+ DefaultVisual(dpy, screen), CWOverrideRedirect | CWBackPixel, &wa);
+
+ XAllocNamedColor(dpy, DefaultColormap(dpy, screen), "black", &black, &dummy);
+ pmap = XCreateBitmapFromData(dpy, w, curs, 8, 8);
+ invisible = XCreatePixmapCursor(dpy, pmap, pmap, &black, &black, 0, 0);
+ XDefineCursor(dpy, w, invisible);
+ running = XGrabPointer(dpy, RootWindow(dpy, screen), False,
+ ButtonPressMask | ButtonReleaseMask | PointerMotionMask,
+ GrabModeAsync, GrabModeSync, None, invisible, CurrentTime) == GrabSuccess
+ && XGrabKeyboard(dpy, RootWindow(dpy, screen), True, GrabModeAsync,
+ GrabModeAsync, CurrentTime) == GrabSuccess;
+ XMapRaised(dpy, w);
+ XSync(dpy, False);