summary refs log tree commit diff
diff options
context:
space:
mode:
authorokan <okan>2013-05-19 17:05:52 +0000
committerokan <okan>2013-05-19 17:05:52 +0000
commitc84145661e14cc62032f30c6a8c744ba84b95601 (patch)
treea55b81700785ab648b54a77364faa52b1030bc68
parent556a50d8f7f6804630bfffc6b1f1817fd67a273b (diff)
downloadcwm-c84145661e14cc62032f30c6a8c744ba84b95601.tar.gz
cwm-c84145661e14cc62032f30c6a8c744ba84b95601.tar.xz
cwm-c84145661e14cc62032f30c6a8c744ba84b95601.zip
add support for _NET_CLOSE_WINDOW
-rw-r--r--calmwm.h1
-rw-r--r--xevents.c3
-rw-r--r--xutil.c1
3 files changed, 5 insertions, 0 deletions
diff --git a/calmwm.h b/calmwm.h
index 032e8b8..cf980e1 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -545,6 +545,7 @@ enum {
 	_NET_WORKAREA,
 	_NET_WM_NAME,
 	_NET_WM_DESKTOP,
+	_NET_CLOSE_WINDOW,
 	EWMH_NITEMS
 };
 struct atom_ctx {
diff --git a/xevents.c b/xevents.c
index 174985d..91da64a 100644
--- a/xevents.c
+++ b/xevents.c
@@ -348,6 +348,9 @@ xev_handle_clientmessage(XEvent *ee)
 	if (e->message_type == cwmh[WM_CHANGE_STATE].atom &&
 	    e->format == 32 && e->data.l[0] == IconicState)
 		client_hide(cc);
+
+	if (e->message_type == ewmh[_NET_CLOSE_WINDOW].atom)
+		client_send_delete(cc);
 }
 
 static void
diff --git a/xutil.c b/xutil.c
index 764116a..d9f2106 100644
--- a/xutil.c
+++ b/xutil.c
@@ -256,6 +256,7 @@ struct atom_ctx ewmh[EWMH_NITEMS] = {
 	{"_NET_WORKAREA",		None},
 	{"_NET_WM_NAME",		None},
 	{"_NET_WM_DESKTOP",		None},
+	{"_NET_CLOSE_WINDOW",		None},
 };
 
 void