Use a file static boolean instead.
} Query;
typedef struct {
} Query;
typedef struct {
GSList *thenacts;
GSList *elseacts;
GSList *thenacts;
GSList *elseacts;
} Options;
static gpointer setup_func(xmlNodePtr node);
} Options;
static gpointer setup_func(xmlNodePtr node);
static gboolean run_func_stop(ObActionsData *data, gpointer options);
static gboolean run_func_foreach(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)
{
actions_register("If", setup_func, free_func, run_func_if);
void action_if_startup(void)
{
actions_register("If", setup_func, free_func, run_func_if);
static gboolean run_func_foreach(ObActionsData *data, gpointer options)
{
GList *it;
static gboolean run_func_foreach(ObActionsData *data, gpointer options)
{
GList *it;
for (it = client_list; it; it = g_list_next(it)) {
data->client = it->data;
run_func_if(data, options);
for (it = client_list; it; it = g_list_next(it)) {
data->client = it->data;
run_func_if(data, options);
+ if (foreach_stop) {
+ foreach_stop = FALSE;
static gboolean run_func_stop(ObActionsData *data, gpointer options)
{
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 */
/* This stops the loop above so we don't invoke actions on any more
clients */
/* TRUE causes actions_run_acts to not run further actions on the current
client */
/* TRUE causes actions_run_acts to not run further actions on the current
client */