diff options
-rw-r--r-- | client.c | 13 | ||||
-rw-r--r-- | dwm.h | 1 | ||||
-rw-r--r-- | main.c | 14 |
3 files changed, 11 insertions, 17 deletions
@@ -154,10 +154,19 @@ focus(Client *c) { void killclient(const char *arg) { + XEvent ev; + if(!sel) return; - if(isprotodel(sel)) - sendevent(sel->win, wmatom[WMProtocols], wmatom[WMDelete]); + if(isprotodel(sel)) { + ev.type = ClientMessage; + ev.xclient.window = sel->win; + ev.xclient.message_type = wmatom[WMProtocols]; + ev.xclient.format = 32; + ev.xclient.data.l[0] = wmatom[WMDelete]; + ev.xclient.data.l[1] = CurrentTime; + XSendEvent(dpy, sel->win, False, NoEventMask, &ev); + } else XKillClient(dpy, sel->win); } @@ -130,7 +130,6 @@ void zoom(const char *arg); /* zooms the focused client to master area, arg is /* main.c */ void quit(const char *arg); /* quit dwm nicely */ -void sendevent(Window w, Atom a, long value); /* send synthetic event to w */ int xerror(Display *dsply, XErrorEvent *ee); /* dwm's X error handler */ /* tag.c */ @@ -222,20 +222,6 @@ xerrorstart(Display *dsply, XErrorEvent *ee) { /* extern */ void -sendevent(Window w, Atom a, long value) { - XEvent e; - - e.type = ClientMessage; - e.xclient.window = w; - e.xclient.message_type = a; - e.xclient.format = 32; - e.xclient.data.l[0] = value; - e.xclient.data.l[1] = CurrentTime; - XSendEvent(dpy, w, False, NoEventMask, &e); - XSync(dpy, False); -} - -void quit(const char *arg) { readin = running = False; } |