From: Dana Jansens Date: Sat, 1 Mar 2008 05:18:33 +0000 (-0500) Subject: pass the targeted window's PID (if available) and WINDOW_ID to the environment of... X-Git-Tag: xkb~116 X-Git-Url: http://git.openbox.org/?p=dana%2Fopenbox.git;a=commitdiff_plain;h=94c60ba74e1efef25f86dbc8d000b33756de79ad pass the targeted window's PID (if available) and WINDOW_ID to the environment of the Execute action --- diff --git a/openbox/actions/execute.c b/openbox/actions/execute.c index fd9625c..69690fa 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); }