]> Dogcows Code - chaz/openbox/blobdiff - plugins/placement/placement.c
new method for loading menu files etc
[chaz/openbox] / plugins / placement / placement.c
index e497505520d7d7d87803ef8516eff1845d98911a..18c9c39b615895cb9e4b3d0971dd83012269478a 100644 (file)
@@ -10,7 +10,7 @@
 
 static gboolean history;
 
-static void parse_xml(xmlDocPtr doc, xmlNodePtr node, void *d)
+static void parse_xml(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d)
 {
     xmlNodePtr n;
 
@@ -19,15 +19,21 @@ static void parse_xml(xmlDocPtr doc, xmlNodePtr node, void *d)
         history = parse_bool(doc, n);
 }
 
-void plugin_setup_config()
+void plugin_setup_config(ObParseInst *i)
 {
     history = TRUE;
 
-    parse_register("placement", parse_xml, NULL);
+    parse_register(i, "placement", parse_xml, NULL);
 }
 
 static Rect* pick_head(ObClient *c)
 {
+    /* try direct parent first */
+    if (c->transient_for && c->transient_for != OB_TRAN_GROUP) {
+        return screen_area_monitor(c->desktop,
+                                   client_monitor(c->transient_for));
+    }
+
     /* more than one guy in his group (more than just him) */
     if (c->group && c->group->members->next) {
         GSList *it;
This page took 0.020766 seconds and 4 git commands to generate.