X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=plugins%2Fplacement%2Fplacement.c;fp=plugins%2Fplacement%2Fplacement.c;h=ea1a21e37c6b8f961838bd0361f73fb867472fd8;hb=cb3c457b8270df540c53400ba999517f919a0121;hp=d03fb4b361735879e4ea9352b96cb16e01e731dc;hpb=4cd886e5188549ab48a11b70cb40b65efe916b6c;p=chaz%2Fopenbox diff --git a/plugins/placement/placement.c b/plugins/placement/placement.c index d03fb4b3..ea1a21e3 100644 --- a/plugins/placement/placement.c +++ b/plugins/placement/placement.c @@ -56,16 +56,13 @@ static void event(ObEvent *e, void *foo) { g_assert(e->type == Event_Client_New); - /* requested a position */ - if (e->data.c.client->positioned) return; - if (e->data.c.client->transient_for) { if (e->data.c.client->transient_for != OB_TRAN_GROUP) { ObClient *c = e->data.c.client; ObClient *p = e->data.c.client->transient_for; - int x = (c->frame->area.width - p->frame->area.width) / 2 + + int x = (p->frame->area.width - c->frame->area.width) / 2 + p->frame->area.x; - int y = (c->frame->area.height - p->frame->area.height) / 2 + + int y = (p->frame->area.height - c->frame->area.height) / 2 + p->frame->area.y; client_configure(c, OB_CORNER_TOPLEFT, x, y, c->area.width, c->area.height, @@ -104,6 +101,9 @@ static void event(ObEvent *e, void *foo) } } + /* requested a position */ + if (e->data.c.client->positioned) return; + if (!history || !place_history(e->data.c.client)) place_random(e->data.c.client); }