Don't run actions in If in reverse order.
[mikachu/openbox.git] / openbox / actions / if.c
index a5d5f0b..4c98966 100644 (file)
@@ -27,7 +27,7 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
 static void     free_func(gpointer options);
 static gboolean run_func(ObActionsData *data, gpointer options);
 
-void action_if_startup()
+void action_if_startup(void)
 {
     actions_register("If",
                      setup_func,
@@ -86,7 +86,7 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
         m = parse_find_node("action", n->xmlChildrenNode);
         while (m) {
             ObActionsAct *action = actions_parse(i, doc, m);
-            if (action) o->thenacts = g_slist_prepend(o->thenacts, action);
+            if (action) o->thenacts = g_slist_append(o->thenacts, action);
             m = parse_find_node("action", m->next);
         }
     }
@@ -96,7 +96,7 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
         m = parse_find_node("action", n->xmlChildrenNode);
         while (m) {
             ObActionsAct *action = actions_parse(i, doc, m);
-            if (action) o->elseacts = g_slist_prepend(o->elseacts, action);
+            if (action) o->elseacts = g_slist_append(o->elseacts, action);
             m = parse_find_node("action", m->next);
         }
     }
@@ -128,8 +128,8 @@ static gboolean run_func(ObActionsData *data, gpointer options)
         (!o->maxvert_off || (c && !c->max_vert)) &&
         (!o->maxfull_on || (c && c->max_vert && c->max_horz)) &&
         (!o->maxfull_off || (c && !(c->max_vert && c->max_horz))) &&
-        (!o->focused || (c && !(c == focus_client))) &&
-        (!o->unfocused || (c && !(c != focus_client))))
+        (!o->focused || (c && (c == focus_client))) &&
+        (!o->unfocused || (c && !(c == focus_client))))
     {
         acts = o->thenacts;
     }