On Wed, Dec 11, 2013 at 07:42:06AM +0100, Roberto E. Vargas Caballero wrote:
> pid is a variable for the pid of the slave process, so I think it
> is a bit confusing using it for the pid of the master process, and
> if the order of the initialization is changed we will lost the slave
> pid.  I think could be better to use a local variable.

I've attached a version of the patch that uses a local variable instead.

Eric
>From 5eae0f52cea4f30fbe16fb68f909372ff50eda63 Mon Sep 17 00:00:00 2001
From: Eric Pruitt <eric.pru...@gmail.com>
Date: Wed, 11 Dec 2013 07:10:08 -0600
Subject: [PATCH] Set _NET_WM_PID attribute

---
 st.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/st.c b/st.c
index 91eb2cc..f883ac1 100644
--- a/st.c
+++ b/st.c
@@ -240,7 +240,7 @@ typedef struct {
 	Colourmap cmap;
 	Window win;
 	Drawable buf;
-	Atom xembed, wmdeletewin, netwmname;
+	Atom xembed, wmdeletewin, netwmname, netwmpid;
 	XIM xim;
 	XIC xic;
 	Draw draw;
@@ -2933,6 +2933,7 @@ xinit(void) {
 	Cursor cursor;
 	Window parent;
 	int sw, sh;
+	pid_t thispid = getpid();
 
 	if(!(xw.dpy = XOpenDisplay(NULL)))
 		die("Can't open display\n");
@@ -3027,6 +3028,10 @@ xinit(void) {
 	xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False);
 	XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1);
 
+	xw.netwmpid = XInternAtom(xw.dpy, "_NET_WM_PID", False);
+	XChangeProperty(xw.dpy, xw.win, xw.netwmpid, XA_CARDINAL, 32,
+			PropModeReplace, (unsigned char *)&thispid, 1);
+
 	xresettitle();
 	XMapWindow(xw.dpy, xw.win);
 	xhints();
-- 
1.7.10.4

Reply via email to