|
@ -6,7 +6,7 @@ |
|
|
#include <stdlib.h> |
|
|
#include <stdlib.h> |
|
|
#include <string.h> |
|
|
#include <string.h> |
|
|
#include <strings.h> |
|
|
#include <strings.h> |
|
|
#include <unistd.h> |
|
|
|
|
|
|
|
|
#include <time.h> |
|
|
#include <X11/Xlib.h> |
|
|
#include <X11/Xlib.h> |
|
|
#include <X11/Xatom.h> |
|
|
#include <X11/Xatom.h> |
|
|
#include <X11/Xutil.h> |
|
|
#include <X11/Xutil.h> |
|
@ -203,6 +203,7 @@ drawmenu(void) |
|
|
static void |
|
|
static void |
|
|
grabkeyboard(void) |
|
|
grabkeyboard(void) |
|
|
{ |
|
|
{ |
|
|
|
|
|
struct timespec ts = { .tv_sec = 1, .tv_nsec = 0 }; |
|
|
int i; |
|
|
int i; |
|
|
|
|
|
|
|
|
/* try to grab keyboard, we may have to wait for another process to ungrab */ |
|
|
/* try to grab keyboard, we may have to wait for another process to ungrab */ |
|
@ -210,7 +211,7 @@ grabkeyboard(void) |
|
|
if (XGrabKeyboard(dpy, DefaultRootWindow(dpy), True, |
|
|
if (XGrabKeyboard(dpy, DefaultRootWindow(dpy), True, |
|
|
GrabModeAsync, GrabModeAsync, CurrentTime) == GrabSuccess) |
|
|
GrabModeAsync, GrabModeAsync, CurrentTime) == GrabSuccess) |
|
|
return; |
|
|
return; |
|
|
usleep(1000); |
|
|
|
|
|
|
|
|
nanosleep(&ts, NULL); |
|
|
} |
|
|
} |
|
|
die("cannot grab keyboard\n"); |
|
|
die("cannot grab keyboard\n"); |
|
|
} |
|
|
} |
|
|