all repos — openbox @ 1ea131048d674f558504ec13ae8573bd407b82e4

openbox fork - make it a bit more like ryudo

Fix thinko in if.c, *o in Stop can never be pointing at the right place.

Use a file static boolean instead.
Mikael Magnusson mikachu@gmail.com
commit

1ea131048d674f558504ec13ae8573bd407b82e4

parent

d8f1ef057b0959410bdea84895d3bc091d157880

1 files changed, 7 insertions(+), 8 deletions(-)

jump to
M openbox/actions/if.copenbox/actions/if.c

@@ -79,10 +79,9 @@ TypedMatch type;

} Query; typedef struct { - GArray* queries; + GArray *queries; GSList *thenacts; GSList *elseacts; - gboolean stop; } Options; static gpointer setup_func(xmlNodePtr node);

@@ -90,6 +89,8 @@ static void free_func(gpointer options);

static gboolean run_func_if(ObActionsData *data, gpointer options); static gboolean run_func_stop(ObActionsData *data, gpointer options); static gboolean run_func_foreach(ObActionsData *data, gpointer options); + +static gboolean foreach_stop; void action_if_startup(void) {

@@ -430,14 +431,14 @@

static gboolean run_func_foreach(ObActionsData *data, gpointer options) { GList *it; - Options *o = options; - o->stop = FALSE; + foreach_stop = FALSE; for (it = client_list; it; it = g_list_next(it)) { data->client = it->data; run_func_if(data, options); - if (o->stop) { + if (foreach_stop) { + foreach_stop = FALSE; break; } }

@@ -447,11 +448,9 @@ }

static gboolean run_func_stop(ObActionsData *data, gpointer options) { - Options *o = options; - /* This stops the loop above so we don't invoke actions on any more clients */ - o->stop = TRUE; + foreach_stop = TRUE; /* TRUE causes actions_run_acts to not run further actions on the current client */