all repos — openbox @ 94c60ba74e1efef25f86dbc8d000b33756de79ad

openbox fork - make it a bit more like ryudo

pass the targeted window's PID (if available) and WINDOW_ID to the environment of the Execute action
Dana Jansens danakj@orodu.net
commit

94c60ba74e1efef25f86dbc8d000b33756de79ad

parent

a1908e076736e1a618bd305c5963dbfecaa30497

1 files changed, 24 insertions(+), 0 deletions(-)

jump to
M openbox/actions/execute.copenbox/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 @@ /* launch it on the current desktop */

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))

@@ -167,6 +188,9 @@ sn_spawn_cancel();

} if (o->sn) unsetenv("DESKTOP_STARTUP_ID"); + + unsetenv("PID"); + unsetenv("WINDOW_ID"); g_free(program); g_strfreev(argv);