allow you to force the position of windows with rc.xml's per-app settings with the force="yes" attribute
Dana Jansens danakj@orodu.net
3 files changed,
7 insertions(+),
2 deletions(-)
M
openbox/config.c
→
openbox/config.c
@@ -137,6 +137,7 @@ copy_if(max_vert, -1);
if (src->pos_given) { dst->pos_given = TRUE; + dst->pos_force = src->pos_force; dst->position = src->position; dst->monitor = src->monitor; }@@ -246,6 +247,8 @@ else
settings->monitor = parse_int(doc, c) + 1; g_free(s); } + + parse_attr_bool("force", n, &settings->pos_force); } if ((n = parse_find_node("focus", app->children)))
M
openbox/config.h
→
openbox/config.h
@@ -41,6 +41,7 @@ GPatternSpec *role;
GravityPoint position; gboolean pos_given; + gboolean pos_force; guint desktop; gint shade;
M
openbox/place.c
→
openbox/place.c
@@ -489,8 +489,9 @@ gboolean ret;
gboolean userplaced = FALSE; /* per-app settings override program specified position - * but not user specified */ - if ((client->positioned & USPosition) || + * but not user specified, unless pos_force is enabled */ + if (((client->positioned & USPosition) && + !(settings && settings->pos_given && settings->pos_force)) || ((client->positioned & PPosition) && !(settings && settings->pos_given))) return FALSE;