Fix negative relative coordinate placement
This commit is contained in:
parent
e02c2f4174
commit
2d289312ba
1 changed files with 19 additions and 16 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue