X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fplace.c;h=d290be3db2289805579a87a6c39f3020a0a6b23b;hb=de1679e3e2f05a20d7ac7daaddb38db0f2e3172b;hp=adbb1f4b7a54dfc3c2e99a1859588c293418dc3a;hpb=c538ebf42282e904bc623adb219beb9bdf8408b4;p=chaz%2Fopenbox diff --git a/openbox/place.c b/openbox/place.c index adbb1f4b..d290be3d 100644 --- a/openbox/place.c +++ b/openbox/place.c @@ -326,8 +326,12 @@ static gboolean place_nooverlap(ObClient *c, gint *x, gint *y) Rect *r = maxit->data; /* center it in the area */ - *x = r->x + (r->width - c->frame->area.width) / 2; - *y = r->y + (r->height - c->frame->area.height) / 2; + *x = r->x; + *y = r->y; + if (config_place_center) { + *x += (r->width - c->frame->area.width) / 2; + *y += (r->height - c->frame->area.height) / 2; + } ret = TRUE; } @@ -469,7 +473,11 @@ gboolean place_client(ObClient *client, gint *x, gint *y, { gboolean ret; - if (client->positioned) + /* per-app settings override program specified position + * but not user specified */ + if ((client->positioned & USPosition) || + ((client->positioned & PPosition) && !(settings && settings->pos_given)) + ) return FALSE; /* try a number of methods */ @@ -482,7 +490,6 @@ gboolean place_client(ObClient *client, gint *x, gint *y, g_assert(ret); /* get where the client should be */ - frame_frame_gravity(client->frame, x, y, - client->area.width, client->area.height); + frame_frame_gravity(client->frame, x, y); return ret; }