Hi!
I noticed that st doesn't handle WM_DELETE_WINDOW. Patch attached.


David
diff -r b0c5f18fa666 st.c
--- a/st.c	Fri Oct 05 11:07:55 2012 +0200
+++ b/st.c	Fri Oct 05 18:42:14 2012 +0200
@@ -198,6 +198,7 @@
 	Window win;
 	XdbeBackBuffer buf;
 	Atom xembed;
+	Atom wmdeletewin;
 	XIM xim;
 	XIC xic;
 	XftDraw *xft_draw;
@@ -2173,6 +2174,8 @@
 		&(XColor){.red = 0x0000, .green = 0x0000, .blue = 0x0000});
 
 	xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False);
+	xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False);
+	XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1);
 
 	xresettitle();
 	XMapWindow(xw.dpy, xw.win);
@@ -2458,6 +2461,10 @@
 		} else if(e->xclient.data.l[1] == XEMBED_FOCUS_OUT) {
 			xw.state &= ~WIN_FOCUSED;
 		}
+	} else if(e->xclient.data.l[0] == xw.wmdeletewin) {
+		/* Send SIGHUP to shell */
+		kill(pid, SIGHUP);
+		exit(EXIT_SUCCESS);
 	}
 }
 

Reply via email to