]> Dogcows Code - chaz/openbox/blobdiff - openbox/actions/if.c
missing header
[chaz/openbox] / openbox / actions / if.c
index 08f543b776ae2c1ed4fa4602d42122b6b9f56da4..a5d5f0bbc8a147ab8499527212c1f256b7e460a6 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 {
@@ -16,6 +17,8 @@ typedef struct {
     gboolean maxfull_off;
     gboolean iconic_on;
     gboolean iconic_off;
+    gboolean focused;
+    gboolean unfocused;
     GSList *thenacts;
     GSList *elseacts;
 } Options;
@@ -70,6 +73,12 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
         else
             o->iconic_off = TRUE;
     }
+    if ((n = parse_find_node("focused", node))) {
+        if (parse_bool(doc, n))
+            o->focused = TRUE;
+        else
+            o->unfocused = TRUE;
+    }
 
     if ((n = parse_find_node("then", node))) {
         xmlNodePtr m;
@@ -118,7 +127,9 @@ static gboolean run_func(ObActionsData *data, gpointer options)
         (!o->maxvert_on || (c && c->max_vert)) &&
         (!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->maxfull_off || (c && !(c->max_vert && c->max_horz))) &&
+        (!o->focused || (c && !(c == focus_client))) &&
+        (!o->unfocused || (c && !(c != focus_client))))
     {
         acts = o->thenacts;
     }
This page took 0.023562 seconds and 4 git commands to generate.