]> Dogcows Code - chaz/openbox/blobdiff - openbox/action.c
typo fix a comment
[chaz/openbox] / openbox / action.c
index 17d951cfe83dffcd29dbf21701c5e6c115fe3a3a..2251715123aa5ba18aaeb1c0793c225472184a63 100644 (file)
@@ -979,14 +979,23 @@ void action_run_string(const gchar *name, struct _ObClient *c)
 void action_execute(union ActionData *data)
 {
     GError *e = NULL;
-    gchar *cmd;
+    gchar *cmd, **argv = 0;
     if (data->execute.path) {
         cmd = g_filename_from_utf8(data->execute.path, -1, NULL, NULL, NULL);
         if (cmd) {
-            if (!g_spawn_command_line_async(cmd, &e)) {
+            if (!g_shell_parse_argv (cmd, NULL, &argv, &e)) {
                 g_warning("failed to execute '%s': %s",
                           cmd, e->message);
                 g_error_free(e);
+            } else {
+                if (!g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH |
+                                   G_SPAWN_DO_NOT_REAP_CHILD,
+                                   NULL, NULL, NULL, &e)) {
+                    g_warning("failed to execute '%s': %s",
+                              cmd, e->message);
+                    g_error_free(e);
+                }
+                g_strfreev(argv);
             }
             g_free(cmd);
         } else {
@@ -1041,7 +1050,10 @@ void action_raiselower(union ActionData *data)
         }
     }
 
-    action_run_string((raise ? "Raise" : "Lower"), c);
+    if (raise)
+        action_raise(data);
+    else
+        action_lower(data);
 }
 
 void action_raise(union ActionData *data)
@@ -1054,17 +1066,17 @@ void action_raise(union ActionData *data)
 void action_unshaderaise(union ActionData *data)
 {
     if (data->client.any.c->shaded)
-        action_run_string("Unshade", data->client.any.c);
+        action_unshade(data);
     else
-        action_run_string("Raise", data->client.any.c);
+        action_raise(data);
 }
 
 void action_shadelower(union ActionData *data)
 {
     if (data->client.any.c->shaded)
-        action_run_string("Lower", data->client.any.c);
+        action_lower(data);
     else
-        action_run_string("Shade", data->client.any.c);
+        action_shade(data);
 }
 
 void action_lower(union ActionData *data)
This page took 0.020888 seconds and 4 git commands to generate.