pass the targeted window's PID (if available) and WINDOW_ID to the environment of the Execute action
This commit is contained in:
parent
a1908e0767
commit
94c60ba74e
1 changed files with 24 additions and 0 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue