Fix negative relative coordinate placement

This commit is contained in:
Mikael Magnusson 2014-10-06 18:20:51 +02:00
parent e02c2f4174
commit 2d289312ba

View file

@ -296,24 +296,27 @@ static gboolean place_per_app_setting_position(ObClient *client, Rect *screen,
ob_debug("placing by per-app settings");
if (settings->position.x.center)
*x = screen->x + screen->width / 2 - client->area.width / 2;
else if (settings->position.x.opposite)
*x = screen->x + screen->width - frame_size.width -
settings->position.x.pos;
else
*x = screen->x + settings->position.x.pos;
if (settings->position.x.denom)
*x = (*x * screen->width) / settings->position.x.denom;
*x = screen->width / 2 - client->area.width / 2;
else {
*x = settings->position.x.pos;
if (settings->position.x.denom)
*x = (*x * screen->width) / settings->position.x.denom;
if (settings->position.x.opposite)
*x = screen->width - frame_size.width - *x;
}
if (settings->position.y.center)
*y = screen->y + screen->height / 2 - client->area.height / 2;
else if (settings->position.y.opposite)
*y = screen->y + screen->height - frame_size.height -
settings->position.y.pos;
else
*y = screen->y + settings->position.y.pos;
if (settings->position.y.denom)
*y = (*y * screen->height) / settings->position.y.denom;
*y = screen->height / 2 - client->area.height / 2;
else {
*y = settings->position.y.pos;
if (settings->position.y.denom)
*y = (*y * screen->height) / settings->position.y.denom;
if (settings->position.y.opposite)
*y = screen->height - frame_size.height - *y;
}
*x += screen->x;
*y += screen->y;
return TRUE;
}