slock
simple X display locker utility
git clone https://9o.is/git/slock.git
commit 48a7ab2225d1e53a8e0fd73bca975bb7695d1b06 parent d8ea9368993538b132ac019859b37f4bbbf85962 Author: Anselm R. Garbe <arg@suckless.org> Date: Wed, 7 Mar 2007 10:57:23 +0100 grab on the root window, it is correct, all lockers do that Diffstat:
| M | config.mk | | | 2 | +- |
| M | slock.c | | | 5 | ++--- |
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/config.mk b/config.mk @@ -1,5 +1,5 @@ # slock version -VERSION = 0.5 +VERSION = 0.6 # Customize below to fit your system diff --git a/slock.c b/slock.c @@ -81,21 +81,20 @@ main(int argc, char **argv) { w = XCreateWindow(dpy, root, 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); XMapRaised(dpy, w); for(len = 1000; len; len--) { - if(XGrabPointer(dpy, w, False, ButtonPressMask | ButtonReleaseMask | PointerMotionMask, + if(XGrabPointer(dpy, root, False, ButtonPressMask | ButtonReleaseMask | PointerMotionMask, GrabModeAsync, GrabModeSync, None, invisible, CurrentTime) == GrabSuccess) break; usleep(1000); } if((running = running && (len > 0))) { for(len = 1000; len; len--) { - if(XGrabKeyboard(dpy, w, True, GrabModeAsync, GrabModeAsync, CurrentTime) + if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) == GrabSuccess) break; usleep(1000);