X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=inline;f=openbox%2Fplace.c;h=8003270eb0e04f6afe4ee99cae683b96d2127224;hb=9a9e3f6bf6be75094636e37d54fb16e4456b43be;hp=5614ecf3e002d55f06109c30e13a3330503e9bef;hpb=1a005d729155015be614ccb86b596020c99ae712;p=chaz%2Fopenbox diff --git a/openbox/place.c b/openbox/place.c index 5614ecf3..8003270e 100644 --- a/openbox/place.c +++ b/openbox/place.c @@ -126,9 +126,9 @@ static gboolean place_random(ObClient *client, gint *x, gint *y) b = areas[i]->y + areas[i]->height - client->frame->area.height; if (r > l) *x = g_random_int_range(l, r + 1); - else *x = 0; + else *x = areas[i]->x; if (b > t) *y = g_random_int_range(t, b + 1); - else *y = 0; + else *y = areas[i]->y; g_free(areas); @@ -282,7 +282,7 @@ static gboolean place_smart(ObClient *client, gint *x, gint *y, if (WINDOW_IS_CLIENT(it->data)) { c = it->data; - if (c->fullscreen) + if (c->fullscreen || (c->max_vert && c->max_horz)) continue; } else continue; @@ -306,7 +306,7 @@ static gboolean place_smart(ObClient *client, gint *x, gint *y, if (WINDOW_IS_CLIENT(it->data)) { c = it->data; - if (c->fullscreen) + if (c->fullscreen || (c->max_vert && c->max_horz)) continue; } else continue; @@ -489,6 +489,7 @@ gboolean place_client(ObClient *client, gint *x, gint *y, place_random(client, x, y)))) g_assert_not_reached(); /* the last one better succeed */ /* get where the client should be */ - frame_frame_gravity(client->frame, x, y); + frame_frame_gravity(client->frame, x, y, + client->area.width, client->area.height); return ret; }