diff options
| -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
| @@ -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); @@ -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); +	} +} @@ -22,6 +22,7 @@ static Bool otherwm;  static void  cleanup()  { +	ungrabkeys();  	while(sel) {  		resize(sel, True, TopLeft);  		unmanage(sel); | 
