removed grabkeys, not necessary
2d7bb8d7
1 file(s) · +20 −25
| 129 | 129 | static void maprequest(XEvent *e); |
|
| 130 | 130 | static void propertynotify(XEvent *e); |
|
| 131 | 131 | static void unmapnotify(XEvent *e); |
|
| 132 | - | static void grabkeys(void); |
|
| 133 | 132 | static unsigned int idxoftag(const char *tag); |
|
| 134 | 133 | static void floating(void); /* default floating layout */ |
|
| 135 | 134 | static void applyrules(Client *c); |
|
| 1070 | 1069 | KEYS |
|
| 1071 | 1070 | unsigned int len = sizeof keys / sizeof keys[0]; |
|
| 1072 | 1071 | unsigned int i; |
|
| 1072 | + | KeyCode code; |
|
| 1073 | 1073 | KeySym keysym; |
|
| 1074 | - | XKeyEvent *ev = &e->xkey; |
|
| 1074 | + | XKeyEvent *ev; |
|
| 1075 | 1075 | ||
| 1076 | + | if(!e) { /* grabkeys */ |
|
| 1077 | + | XUngrabKey(dpy, AnyKey, AnyModifier, root); |
|
| 1078 | + | for(i = 0; i < len; i++) { |
|
| 1079 | + | code = XKeysymToKeycode(dpy, keys[i].keysym); |
|
| 1080 | + | XGrabKey(dpy, code, keys[i].mod, root, True, |
|
| 1081 | + | GrabModeAsync, GrabModeAsync); |
|
| 1082 | + | XGrabKey(dpy, code, keys[i].mod | LockMask, root, True, |
|
| 1083 | + | GrabModeAsync, GrabModeAsync); |
|
| 1084 | + | XGrabKey(dpy, code, keys[i].mod | numlockmask, root, True, |
|
| 1085 | + | GrabModeAsync, GrabModeAsync); |
|
| 1086 | + | XGrabKey(dpy, code, keys[i].mod | numlockmask | LockMask, root, True, |
|
| 1087 | + | GrabModeAsync, GrabModeAsync); |
|
| 1088 | + | } |
|
| 1089 | + | return; |
|
| 1090 | + | } |
|
| 1091 | + | ev = &e->xkey; |
|
| 1076 | 1092 | keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); |
|
| 1077 | 1093 | for(i = 0; i < len; i++) |
|
| 1078 | 1094 | if(keysym == keys[i].keysym |
|
| 1099 | 1115 | ||
| 1100 | 1116 | XRefreshKeyboardMapping(ev); |
|
| 1101 | 1117 | if(ev->request == MappingKeyboard) |
|
| 1102 | - | grabkeys(); |
|
| 1118 | + | keypress(NULL); |
|
| 1103 | 1119 | } |
|
| 1104 | 1120 | ||
| 1105 | 1121 | static void |
|
| 1150 | 1166 | ||
| 1151 | 1167 | if((c = getclient(ev->window))) |
|
| 1152 | 1168 | unmanage(c); |
|
| 1153 | - | } |
|
| 1154 | - | ||
| 1155 | - | static void |
|
| 1156 | - | grabkeys(void) { |
|
| 1157 | - | KEYS |
|
| 1158 | - | unsigned int len = sizeof keys / sizeof keys[0]; |
|
| 1159 | - | unsigned int i; |
|
| 1160 | - | KeyCode code; |
|
| 1161 | - | ||
| 1162 | - | XUngrabKey(dpy, AnyKey, AnyModifier, root); |
|
| 1163 | - | for(i = 0; i < len; i++) { |
|
| 1164 | - | code = XKeysymToKeycode(dpy, keys[i].keysym); |
|
| 1165 | - | XGrabKey(dpy, code, keys[i].mod, root, True, |
|
| 1166 | - | GrabModeAsync, GrabModeAsync); |
|
| 1167 | - | XGrabKey(dpy, code, keys[i].mod | LockMask, root, True, |
|
| 1168 | - | GrabModeAsync, GrabModeAsync); |
|
| 1169 | - | XGrabKey(dpy, code, keys[i].mod | numlockmask, root, True, |
|
| 1170 | - | GrabModeAsync, GrabModeAsync); |
|
| 1171 | - | XGrabKey(dpy, code, keys[i].mod | numlockmask | LockMask, root, True, |
|
| 1172 | - | GrabModeAsync, GrabModeAsync); |
|
| 1173 | - | } |
|
| 1174 | 1169 | } |
|
| 1175 | 1170 | ||
| 1176 | 1171 | static unsigned int |
|
| 1546 | 1541 | wa.cursor = cursor[CurNormal]; |
|
| 1547 | 1542 | XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); |
|
| 1548 | 1543 | XSelectInput(dpy, root, wa.event_mask); |
|
| 1549 | - | grabkeys(); |
|
| 1544 | + | keypress(NULL); /* grabkeys */ |
|
| 1550 | 1545 | compileregs(); |
|
| 1551 | 1546 | for(ntags = 0; tags[ntags]; ntags++); |
|
| 1552 | 1547 | seltags = emallocz(sizeof(Bool) * ntags); |
|