X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=plugins%2Fplacement%2Fplacement.c;h=18c9c39b615895cb9e4b3d0971dd83012269478a;hb=ec9dd7fdd7531d2ca951a0b812bf8e63b6e9a377;hp=e497505520d7d7d87803ef8516eff1845d98911a;hpb=985738469e1be7886b7c84a1702fc4070f254eb1;p=chaz%2Fopenbox diff --git a/plugins/placement/placement.c b/plugins/placement/placement.c index e4975055..18c9c39b 100644 --- a/plugins/placement/placement.c +++ b/plugins/placement/placement.c @@ -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;