removed sendevent
bab5b117
3 file(s) · +11 −17
| 154 | 154 | ||
| 155 | 155 | void |
|
| 156 | 156 | killclient(const char *arg) { |
|
| 157 | + | XEvent ev; |
|
| 158 | + | ||
| 157 | 159 | if(!sel) |
|
| 158 | 160 | return; |
|
| 159 | - | if(isprotodel(sel)) |
|
| 160 | - | sendevent(sel->win, wmatom[WMProtocols], wmatom[WMDelete]); |
|
| 161 | + | if(isprotodel(sel)) { |
|
| 162 | + | ev.type = ClientMessage; |
|
| 163 | + | ev.xclient.window = sel->win; |
|
| 164 | + | ev.xclient.message_type = wmatom[WMProtocols]; |
|
| 165 | + | ev.xclient.format = 32; |
|
| 166 | + | ev.xclient.data.l[0] = wmatom[WMDelete]; |
|
| 167 | + | ev.xclient.data.l[1] = CurrentTime; |
|
| 168 | + | XSendEvent(dpy, sel->win, False, NoEventMask, &ev); |
|
| 169 | + | } |
|
| 161 | 170 | else |
|
| 162 | 171 | XKillClient(dpy, sel->win); |
|
| 163 | 172 | } |
| 130 | 130 | ||
| 131 | 131 | /* main.c */ |
|
| 132 | 132 | void quit(const char *arg); /* quit dwm nicely */ |
|
| 133 | - | void sendevent(Window w, Atom a, long value); /* send synthetic event to w */ |
|
| 134 | 133 | int xerror(Display *dsply, XErrorEvent *ee); /* dwm's X error handler */ |
|
| 135 | 134 | ||
| 136 | 135 | /* tag.c */ |
| 222 | 222 | /* extern */ |
|
| 223 | 223 | ||
| 224 | 224 | void |
|
| 225 | - | sendevent(Window w, Atom a, long value) { |
|
| 226 | - | XEvent e; |
|
| 227 | - | ||
| 228 | - | e.type = ClientMessage; |
|
| 229 | - | e.xclient.window = w; |
|
| 230 | - | e.xclient.message_type = a; |
|
| 231 | - | e.xclient.format = 32; |
|
| 232 | - | e.xclient.data.l[0] = value; |
|
| 233 | - | e.xclient.data.l[1] = CurrentTime; |
|
| 234 | - | XSendEvent(dpy, w, False, NoEventMask, &e); |
|
| 235 | - | XSync(dpy, False); |
|
| 236 | - | } |
|
| 237 | - | ||
| 238 | - | void |
|
| 239 | 225 | quit(const char *arg) { |
|
| 240 | 226 | readin = running = False; |
|
| 241 | 227 | } |