|
|
|
@ -308,11 +308,12 @@ void Booster::requestSplash(const int pid, const std::string &wmclass,
|
|
|
|
const std::string &pixmapId)
|
|
|
|
const std::string &pixmapId)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
std::stringstream st;
|
|
|
|
std::stringstream st;
|
|
|
|
st << getpid();
|
|
|
|
st << pid;
|
|
|
|
std::string pidStr = st.str();
|
|
|
|
std::string pidStr = st.str();
|
|
|
|
|
|
|
|
|
|
|
|
Display * dpy = XOpenDisplay(NULL);
|
|
|
|
Display * dpy = XOpenDisplay(NULL);
|
|
|
|
if (dpy) {
|
|
|
|
if (dpy)
|
|
|
|
|
|
|
|
{
|
|
|
|
const char *compositorWindowIdProperty = "_NET_SUPPORTING_WM_CHECK";
|
|
|
|
const char *compositorWindowIdProperty = "_NET_SUPPORTING_WM_CHECK";
|
|
|
|
Atom compositorWindowIdAtom = XInternAtom(dpy, compositorWindowIdProperty, False);
|
|
|
|
Atom compositorWindowIdAtom = XInternAtom(dpy, compositorWindowIdProperty, False);
|
|
|
|
Atom type;
|
|
|
|
Atom type;
|
|
|
|
@ -326,7 +327,8 @@ void Booster::requestSplash(const int pid, const std::string &wmclass,
|
|
|
|
int retval = XGetWindowProperty(dpy, rootWin, compositorWindowIdAtom,
|
|
|
|
int retval = XGetWindowProperty(dpy, rootWin, compositorWindowIdAtom,
|
|
|
|
0, 0x7fffffff, False, XA_WINDOW,
|
|
|
|
0, 0x7fffffff, False, XA_WINDOW,
|
|
|
|
&type, &format, &nItems, &bytesAfter, &prop);
|
|
|
|
&type, &format, &nItems, &bytesAfter, &prop);
|
|
|
|
if(retval == Success) {
|
|
|
|
if (retval == Success)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
// Package up the data and set the property
|
|
|
|
// Package up the data and set the property
|
|
|
|
int len = pidStr.length() + 1
|
|
|
|
int len = pidStr.length() + 1
|
|
|
|
@ -431,7 +433,7 @@ void Booster::setEnvironmentBeforeLaunch()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Load the application and find out the address of main()
|
|
|
|
// Load the application and find out the address of main()
|
|
|
|
void* handle = loadMain();
|
|
|
|
loadMain();
|
|
|
|
|
|
|
|
|
|
|
|
// Make sure that boosted application can dump core. This must be
|
|
|
|
// Make sure that boosted application can dump core. This must be
|
|
|
|
// done after set[ug]id().
|
|
|
|
// done after set[ug]id().
|
|
|
|
|