]> Dogcows Code - chaz/openbox/blobdiff - plugins/placement/placement.c
python support is gone
[chaz/openbox] / plugins / placement / placement.c
index 23ffbb5d9a47929b6280df8c3030f9e130c8da4e..5f962e47c2bf74823994a9799f5217d16aa5c587 100644 (file)
@@ -3,29 +3,25 @@
 #include "kernel/frame.h"
 #include "kernel/screen.h"
 #include "kernel/openbox.h"
-#include "kernel/parse.h"
+#include "parser/parse.h"
 #include "history.h"
 #include <glib.h>
 
 static gboolean history;
 
-static void parse_assign(char *name, ParseToken *value)
+static void parse_xml(xmlDocPtr doc, xmlNodePtr node, void *d)
 {
-    if  (!g_ascii_strcasecmp(name, "remember")) {
-        if (value->type != TOKEN_BOOL)
-            yyerror("invalid value");
-        else
-            history = value->data.bool;
-    } else
-        yyerror("invalid option");
-    parse_free_token(value);
+    xmlNodePtr n;
+
+    if ((n = parse_find_node("remember", node)))
+        history = parse_bool(doc, n);
 }
 
 void plugin_setup_config()
 {
     history = TRUE;
 
-    parse_reg_section("placement", NULL, parse_assign);
+    parse_register("placement", parse_xml, NULL);
 }
 
 static void place_random(Client *c)
@@ -36,7 +32,8 @@ static void place_random(Client *c)
 
     if (ob_state == State_Starting) return;
 
-    area = screen_area(c->desktop);
+    area = screen_area_xinerama(c->desktop,
+                                g_random_int_range(0, screen_num_xin_areas));
 
     l = area->x;
     t = area->y;
This page took 0.021115 seconds and 4 git commands to generate.