Browse Source

grab on the root window, it is correct, all lockers do that

master 0.6
Anselm R. Garbe 18 years ago
parent
commit
48a7ab2225
  1. 2
      config.mk
  2. 5
      slock.c

2
config.mk

@ -1,5 +1,5 @@
# slock version # slock version
VERSION = 0.5 VERSION = 0.6
# Customize below to fit your system # Customize below to fit your system

5
slock.c

@ -81,21 +81,20 @@ main(int argc, char **argv) {
w = XCreateWindow(dpy, root, 0, 0, DisplayWidth(dpy, screen), DisplayHeight(dpy, screen), w = XCreateWindow(dpy, root, 0, 0, DisplayWidth(dpy, screen), DisplayHeight(dpy, screen),
0, DefaultDepth(dpy, screen), CopyFromParent, 0, DefaultDepth(dpy, screen), CopyFromParent,
DefaultVisual(dpy, screen), CWOverrideRedirect | CWBackPixel, &wa); DefaultVisual(dpy, screen), CWOverrideRedirect | CWBackPixel, &wa);
XAllocNamedColor(dpy, DefaultColormap(dpy, screen), "black", &black, &dummy); XAllocNamedColor(dpy, DefaultColormap(dpy, screen), "black", &black, &dummy);
pmap = XCreateBitmapFromData(dpy, w, curs, 8, 8); pmap = XCreateBitmapFromData(dpy, w, curs, 8, 8);
invisible = XCreatePixmapCursor(dpy, pmap, pmap, &black, &black, 0, 0); invisible = XCreatePixmapCursor(dpy, pmap, pmap, &black, &black, 0, 0);
XDefineCursor(dpy, w, invisible); XDefineCursor(dpy, w, invisible);
XMapRaised(dpy, w); XMapRaised(dpy, w);
for(len = 1000; len; len--) { 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) GrabModeAsync, GrabModeSync, None, invisible, CurrentTime) == GrabSuccess)
break; break;
usleep(1000); usleep(1000);
} }
if((running = running && (len > 0))) { if((running = running && (len > 0))) {
for(len = 1000; len; len--) { for(len = 1000; len; len--) {
if(XGrabKeyboard(dpy, w, True, GrabModeAsync, GrabModeAsync, CurrentTime) if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime)
== GrabSuccess) == GrabSuccess)
break; break;
usleep(1000); usleep(1000);

Loading…
Cancel
Save