Launch child processes more directly; we retrieve the PID, and
use it to keep track of the .desktop file we launched.
Now, when we get a window, since the X window has a PID, we
have a pretty strong association.
.desktop file <-> PID <-> window
And can thus map window back to .desktop file.
https://bugzilla.gnome.org/show_bug.cgi?id=637745