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/actions.h"
|
||||||
#include "openbox/event.h"
|
#include "openbox/event.h"
|
||||||
#include "openbox/startupnotify.h"
|
#include "openbox/startupnotify.h"
|
||||||
|
#include "openbox/client.h"
|
||||||
#include "openbox/prompt.h"
|
#include "openbox/prompt.h"
|
||||||
#include "openbox/screen.h"
|
#include "openbox/screen.h"
|
||||||
#include "obt/paths.h"
|
#include "obt/paths.h"
|
||||||
|
@ -155,6 +156,26 @@ static gboolean run_func(ObActionsData *data, gpointer options)
|
||||||
screen_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,
|
if (!g_spawn_async(NULL, argv, NULL,
|
||||||
G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
|
G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
|
||||||
NULL, NULL, NULL, &e))
|
NULL, NULL, NULL, &e))
|
||||||
|
@ -168,6 +189,9 @@ static gboolean run_func(ObActionsData *data, gpointer options)
|
||||||
if (o->sn)
|
if (o->sn)
|
||||||
unsetenv("DESKTOP_STARTUP_ID");
|
unsetenv("DESKTOP_STARTUP_ID");
|
||||||
|
|
||||||
|
unsetenv("PID");
|
||||||
|
unsetenv("WINDOW_ID");
|
||||||
|
|
||||||
g_free(program);
|
g_free(program);
|
||||||
g_strfreev(argv);
|
g_strfreev(argv);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue