dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit 375a251d16de567b6c62cce208f388cd16e0ce0f
parent d4b7a9a3735deeab639f28b5bb2f568e0dc49616
Author: Anselm R.Garbe <arg@10ksloc.org>
Date:   Mon, 14 Aug 2006 10:24:38 +0200

implemented ungrabkeys() which is called in cleanup()

Diffstat:
Mdwm.h | 1+
Mevent.c | 16++++++++++++++++
Mmain.c | 1+
3 files changed, 18 insertions(+), 0 deletions(-)
diff --git 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
@@ -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
@@ -22,6 +22,7 @@ static Bool otherwm;
 static void
 cleanup()
 {
+    ungrabkeys();
     while(sel) {
         resize(sel, True, TopLeft);
         unmanage(sel);