1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
--- xorg-server-1.12.4/dix/window.c 2012-05-17 10:09:02.000000000 -0700
+++ xorg-server-1.12.4.hacked/dix/window.c 2014-06-04 18:54:33.570855708 -0700
@@ -840,6 +840,20 @@
event.u.createNotify.override = pWin->overrideRedirect;
DeliverEvents(pParent, &event, 1, NullWindow);
}
+
+ if (pScreen->root == pParent) {
+ /* top-level windows with local connections can reliably get _NET_WM_PID set by the server */
+ LocalClientCredRec *lcc;
+ if (GetLocalClientCreds(client, &lcc) != -1)
+ if (lcc->fieldsSet & LCC_PID_SET) {
+ Atom prop;
+
+ prop = MakeAtom("_NET_WM_PID", strlen("_NET_WM_PID"), TRUE);
+ dixChangeWindowProperty(client, pWin, prop,
+ XA_CARDINAL, 32, PropModeReplace,
+ 1, &lcc->pid, FALSE);
+ }
+ }
return pWin;
}
|