all repos — openbox @ deb0aa720a4feda3b52c17e16ed7324c61dc331a

openbox fork - make it a bit more like ryudo

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
commit

deb0aa720a4feda3b52c17e16ed7324c61dc331a

parent

a19f2f8bc9964b89a500a2c5aac0b8d3a3dc2ff4

3 files changed, 7 insertions(+), 2 deletions(-)

jump to
M openbox/config.copenbox/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.hopenbox/config.h

@@ -41,6 +41,7 @@ GPatternSpec *role;

GravityPoint position; gboolean pos_given; + gboolean pos_force; guint desktop; gint shade;
M openbox/place.copenbox/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;