Sure enough, xprop or wnckprop now show the PID and alltray sort of works. By that I mean that the icon appears in the notification area and I can click on it to unmap the application; however, it doesn't simply disappear, rather it goes to the wm's list of programs. Worse, clicking on the alltray icon again does nothing.
I added the code to set _NET_WM_PID; specifically, for the Xt widgets:
XtRealizeWidge t(toplevel) ;
{ XtDisplay( toplevel) , "_NET_WM_PID", False); XtDisplay( toplevel) , "CARDINAL", False);
Atom wm_pid = XInternAtom(
Atom prop_type = XInternAtom(
pid_t my_pid = getpid(); stderr, "Property not defined\n"); operty( XtDisplay( toplevel) , XtWindow(toplevel),
if ((wm_pid == None ) || (prop_type == None))
fprintf(
else
XChangePr
wm_pid, prop_type,
32, PropModeReplace,
(unsigned char *)&my_pid, 1);
}
Sure enough, xprop or wnckprop now show the PID and alltray sort of works. By that I mean that the icon appears in the notification area and I can click on it to unmap the application; however, it doesn't simply disappear, rather it goes to the wm's list of programs. Worse, clicking on the alltray icon again does nothing.