implemented ungrabkeys() which is called in cleanup()
authorAnselm R.Garbe <arg@10ksloc.org>
Mon, 14 Aug 2006 10:24:38 +0200
changeset 271 e9dc5a9f9480
parent 270 dacd3f3c5823
child 272 be40a56df248
implemented ungrabkeys() which is called in cleanup()
dwm.h
event.c
main.c
--- a/dwm.h	Mon Aug 14 10:18:24 2006 +0200
+++ b/dwm.h	Mon Aug 14 10:24:38 2006 +0200
@@ -108,6 +108,7 @@
 
 /* event.c */
 extern void grabkeys();
+extern void ungrabkeys();
 
 /* main.c */
 extern int getproto(Window w);
--- a/event.c	Mon Aug 14 10:18:24 2006 +0200
+++ b/event.c	Mon Aug 14 10:24:38 2006 +0200
@@ -370,3 +370,19 @@
 				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);
+	}
+}
--- a/main.c	Mon Aug 14 10:18:24 2006 +0200
+++ b/main.c	Mon Aug 14 10:24:38 2006 +0200
@@ -22,6 +22,7 @@
 static void
 cleanup()
 {
+	ungrabkeys();
 	while(sel) {
 		resize(sel, True, TopLeft);
 		unmanage(sel);