]> Dogcows Code - chaz/openbox/blobdiff - openbox/startupnotify.c
launch things on the desktop where you ran it.
[chaz/openbox] / openbox / startupnotify.c
index 5db9bd48fd09542f83dcd59fa77a0ff0da5248d0..b9bbab727e8ef2534c499e2461ef94139c309e8d 100644 (file)
@@ -32,7 +32,8 @@ Time sn_app_started(const gchar *id, const gchar *wmclass)
     return CurrentTime;
 }
 gboolean sn_get_desktop(gchar *id, guint *desktop) { return FALSE; }
-gchar **sn_get_spawn_environment(char *program, Time time)
+gchar **sn_get_spawn_environment(char *program, char *name,
+                                 char *icon_name, gint desktop, Time time)
 {
     return g_strdupv(environ);
 }
@@ -225,7 +226,9 @@ static gboolean sn_launch_wait_timeout(gpointer data)
     return FALSE; /* don't repeat */
 }
 
-gchar **sn_get_spawn_environment(char *program, Time time)
+gchar **sn_get_spawn_environment(char *program, char *name,
+                                 char *icon_name, gint desktop,
+                                 Time time)
 {
     gchar **env, *desc;
     guint len;
@@ -238,10 +241,12 @@ gchar **sn_get_spawn_environment(char *program, Time time)
         sn_launcher = sn_launcher_context_new(sn_display, ob_screen);
     }
 
-    sn_launcher_context_set_name(sn_launcher, program);
+    sn_launcher_context_set_name(sn_launcher, name ? name : program);
     sn_launcher_context_set_description(sn_launcher, desc);
-    sn_launcher_context_set_icon_name(sn_launcher, program);
+    sn_launcher_context_set_icon_name(sn_launcher, icon_name ? icon_name : program);
     sn_launcher_context_set_binary_name(sn_launcher, program);
+    if (desktop >= 0 && (unsigned) desktop < screen_num_desktops)
+        sn_launcher_context_set_workspace(sn_launcher, (signed) desktop);
     sn_launcher_context_initiate(sn_launcher, "openbox", program, time);
     id = sn_launcher_context_get_startup_id(sn_launcher);
 
This page took 0.022702 seconds and 4 git commands to generate.