]> Dogcows Code - chaz/openbox/blobdiff - openbox/actions/if.c
Don't run actions in If in reverse order.
[chaz/openbox] / openbox / actions / if.c
index 0b9f842a92befed8b746327eee5fb963d7e66c26..4c989664b3470df060bfb0aaee038013cc4fad97 100644 (file)
@@ -3,6 +3,7 @@
 #include "openbox/client.h"
 #include "openbox/frame.h"
 #include "openbox/screen.h"
+#include "openbox/focus.h"
 #include <glib.h>
 
 typedef struct {
@@ -26,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,
@@ -85,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);
         }
     }
@@ -95,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);
         }
     }
@@ -127,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;
     }
This page took 0.023162 seconds and 4 git commands to generate.