commit 4955efbafae24833a531ffa471c36e56038a926c
parent 8b63e1219b7130f978f1dc2ef72f9e68720bbf5a
Author: Enno Boland (tox) <tox@s01.de>
Date:   Tue, 25 May 2010 00:44:20 +0200
XKill if windows won't close, cleanups.
Diffstat:
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tabbed.c b/tabbed.c
@@ -84,6 +84,7 @@ typedef struct Client {
 	Window win;
 	int tabx;
 	Bool mapped;
+	Bool closed;
 } Client;
 
 /* function declarations */
@@ -548,7 +549,7 @@ killclient(const Arg *arg) {
 
 	if(!sel)
 		return;
-	if(isprotodel(sel)) {
+	if(isprotodel(sel) && !sel->closed) {
 		ev.type = ClientMessage;
 		ev.xclient.window = sel->win;
 		ev.xclient.message_type = wmatom[WMProtocols];
@@ -556,6 +557,7 @@ killclient(const Arg *arg) {
 		ev.xclient.data.l[0] = wmatom[WMDelete];
 		ev.xclient.data.l[1] = CurrentTime;
 		XSendEvent(dpy, sel->win, False, NoEventMask, &ev);
+		sel->closed = True;
 	}
 	else
 		XKillClient(dpy, sel->win);
@@ -757,7 +759,6 @@ sigchld(int unused) {
 
 void
 spawn(const Arg *arg) {
-	puts("aaaa");
 	if(fork() == 0) {
 		if(dpy)
 			close(ConnectionNumber(dpy));