implemented ungrabkeys() which is called in cleanup()
375a251d
3 file(s) · +18 −0
| 108 | 108 | ||
| 109 | 109 | /* event.c */ |
|
| 110 | 110 | extern void grabkeys(); |
|
| 111 | + | extern void ungrabkeys(); |
|
| 111 | 112 | ||
| 112 | 113 | /* main.c */ |
|
| 113 | 114 | extern int getproto(Window w); |
| 370 | 370 | GrabModeAsync, GrabModeAsync); |
|
| 371 | 371 | } |
|
| 372 | 372 | } |
|
| 373 | + | ||
| 374 | + | void |
|
| 375 | + | ungrabkeys() |
|
| 376 | + | { |
|
| 377 | + | static unsigned int len = sizeof(key) / sizeof(key[0]); |
|
| 378 | + | unsigned int i; |
|
| 379 | + | KeyCode code; |
|
| 380 | + | ||
| 381 | + | for(i = 0; i < len; i++) { |
|
| 382 | + | code = XKeysymToKeycode(dpy, key[i].keysym); |
|
| 383 | + | XUngrabKey(dpy, code, key[i].mod, root); |
|
| 384 | + | XUngrabKey(dpy, code, key[i].mod | LockMask, root); |
|
| 385 | + | XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root); |
|
| 386 | + | XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root); |
|
| 387 | + | } |
|
| 388 | + | } |
| 22 | 22 | static void |
|
| 23 | 23 | cleanup() |
|
| 24 | 24 | { |
|
| 25 | + | ungrabkeys(); |
|
| 25 | 26 | while(sel) { |
|
| 26 | 27 | resize(sel, True, TopLeft); |
|
| 27 | 28 | unmanage(sel); |