diff options
author | Anselm R.Garbe <arg@10ksloc.org> | 2006-08-14 10:24:38 +0200 |
---|---|---|
committer | Anselm R.Garbe <arg@10ksloc.org> | 2006-08-14 10:24:38 +0200 |
commit | 375a251d16de567b6c62cce208f388cd16e0ce0f (patch) | |
tree | 15b16722d42a6f9ae483a89786431b0c0fb5cb5b | |
parent | d4b7a9a3735deeab639f28b5bb2f568e0dc49616 (diff) | |
download | dwm-375a251d16de567b6c62cce208f388cd16e0ce0f.tar.gz |
implemented ungrabkeys() which is called in cleanup()
-rw-r--r-- | dwm.h | 1 | ||||
-rw-r--r-- | event.c | 16 | ||||
-rw-r--r-- | main.c | 1 |
3 files changed, 18 insertions, 0 deletions
diff --git a/dwm.h b/dwm.h index c13179f..a1bd1e4 100644 --- a/dwm.h +++ b/dwm.h @@ -108,6 +108,7 @@ extern unsigned int textw(const char *text); /* event.c */ extern void grabkeys(); +extern void ungrabkeys(); /* main.c */ extern int getproto(Window w); diff --git a/event.c b/event.c index e5ca166..4357eae 100644 --- a/event.c +++ b/event.c @@ -370,3 +370,19 @@ grabkeys() GrabModeAsync, GrabModeAsync); } } + +void +ungrabkeys() +{ + static unsigned int len = sizeof(key) / sizeof(key[0]); + unsigned int i; + KeyCode code; + + for(i = 0; i < len; i++) { + code = XKeysymToKeycode(dpy, key[i].keysym); + XUngrabKey(dpy, code, key[i].mod, root); + XUngrabKey(dpy, code, key[i].mod | LockMask, root); + XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root); + XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root); + } +} diff --git a/main.c b/main.c index 16ebbae..228228b 100644 --- a/main.c +++ b/main.c @@ -22,6 +22,7 @@ static Bool otherwm; static void cleanup() { + ungrabkeys(); while(sel) { resize(sel, True, TopLeft); unmanage(sel); |