X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Factions%2Fexecute.c;h=69690faa06aca6db3a6097548b8c7e8535c082f7;hb=94c60ba74e1efef25f86dbc8d000b33756de79ad;hp=fd9625c5486081d4cc7ea508952f4feff6dd33ea;hpb=173b9b764887929b7ff5d30b3e33f0602b0afda6;p=chaz%2Fopenbox diff --git a/openbox/actions/execute.c b/openbox/actions/execute.c index fd9625c5..69690faa 100644 --- a/openbox/actions/execute.c +++ b/openbox/actions/execute.c @@ -1,6 +1,7 @@ #include "openbox/actions.h" #include "openbox/event.h" #include "openbox/startupnotify.h" +#include "openbox/client.h" #include "openbox/prompt.h" #include "openbox/screen.h" #include "obt/paths.h" @@ -155,6 +156,26 @@ static gboolean run_func(ObActionsData *data, gpointer options) screen_desktop); } + if (data->client && data->client->pid) { + gchar *pid; + + pid = g_strdup_printf("%u", data->client->pid); + setenv("PID", pid, TRUE); + g_free(pid); + } + else + unsetenv("PID"); + + if (data->client) { + gchar *wid; + + wid = g_strdup_printf("%u", data->client->window); + setenv("WINDOW_ID", wid, TRUE); + g_free(wid); + } + else + unsetenv("WINDOW_ID"); + if (!g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, NULL, &e)) @@ -168,6 +189,9 @@ static gboolean run_func(ObActionsData *data, gpointer options) if (o->sn) unsetenv("DESKTOP_STARTUP_ID"); + unsetenv("PID"); + unsetenv("WINDOW_ID"); + g_free(program); g_strfreev(argv); }