X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fassignments.c;h=eae87272a3c6bb746eb0102ebb4926bd436b68e3;hb=e114b3dba2485606cf5a3d044c0de8430c9f80b4;hp=50f4852644f3386d9b7d0269ff03fae899399447;hpb=4253aa4ba20a44520f0e08f9e1df4ee9502fa565;p=i3%2Fi3 diff --git a/src/assignments.c b/src/assignments.c index 50f48526..eae87272 100644 --- a/src/assignments.c +++ b/src/assignments.c @@ -2,7 +2,9 @@ * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager - * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE) + * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE) + * + * assignments.c: Assignments for specific windows (for_window). * */ #include "all.h" @@ -13,7 +15,7 @@ * */ void run_assignments(i3Window *window) { - DLOG("Checking assignments...\n"); + DLOG("Checking if any assignments match this window\n"); /* Check if any assignments match */ Assignment *current; @@ -38,10 +40,14 @@ void run_assignments(i3Window *window) { if (current->type == A_COMMAND) { DLOG("execute command %s\n", current->dest.command); char *full_command; - asprintf(&full_command, "[id=\"%d\"] %s", window->id, current->dest.command); - char *json_result = parse_cmd(full_command); - FREE(full_command); - FREE(json_result); + sasprintf(&full_command, "[id=\"%d\"] %s", window->id, current->dest.command); + struct CommandResult *command_output = parse_command(full_command); + free(full_command); + + if (command_output->needs_tree_render) + tree_render(); + + free(command_output->json_output); } /* Store that we ran this assignment to not execute it again */