JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
implemented ungrabkeys() which is called in cleanup()
authorAnselm R.Garbe <arg@10ksloc.org>
Mon, 14 Aug 2006 08:24:38 +0000 (10:24 +0200)
committerAnselm R.Garbe <arg@10ksloc.org>
Mon, 14 Aug 2006 08:24:38 +0000 (10:24 +0200)
dwm.h
event.c
main.c

diff --git a/dwm.h b/dwm.h
index c13179f..a1bd1e4 100644 (file)
--- 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 (file)
--- 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 (file)
--- 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);