]> Dogcows Code - chaz/openbox/commitdiff
place transients better
authorDana Jansens <danakj@orodu.net>
Sat, 2 Aug 2003 06:27:05 +0000 (06:27 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 2 Aug 2003 06:27:05 +0000 (06:27 +0000)
plugins/placement/placement.c

index d03fb4b361735879e4ea9352b96cb16e01e731dc..ea1a21e37c6b8f961838bd0361f73fb867472fd8 100644 (file)
@@ -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);
 }
This page took 0.022464 seconds and 4 git commands to generate.