|
|
|
@ -106,22 +106,22 @@ void Placement::place(AbstractClient *c, const QRect &area, Policy policy, Polic
|
|
|
|
|
const QRect geo(c->moveResizeGeometry());
|
|
|
|
|
QPoint corner = geo.topLeft();
|
|
|
|
|
const QMargins frameMargins = c->frameMargins();
|
|
|
|
|
AbstractClient::Position titlePos = c->titlebarPosition();
|
|
|
|
|
Qt::Edge titlePos = c->titlebarPosition();
|
|
|
|
|
|
|
|
|
|
const QRect fullRect = workspace()->clientArea(FullArea, c);
|
|
|
|
|
if (!(c->maximizeMode() & MaximizeHorizontal)) {
|
|
|
|
|
if (titlePos != AbstractClient::PositionRight && geo.right() == fullRect.right()) {
|
|
|
|
|
if (titlePos != Qt::RightEdge && geo.right() == fullRect.right()) {
|
|
|
|
|
corner.rx() += frameMargins.right();
|
|
|
|
|
}
|
|
|
|
|
if (titlePos != AbstractClient::PositionLeft && geo.left() == fullRect.left()) {
|
|
|
|
|
if (titlePos != Qt::LeftEdge && geo.left() == fullRect.left()) {
|
|
|
|
|
corner.rx() -= frameMargins.left();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!(c->maximizeMode() & MaximizeVertical)) {
|
|
|
|
|
if (titlePos != AbstractClient::PositionBottom && geo.bottom() == fullRect.bottom()) {
|
|
|
|
|
if (titlePos != Qt::BottomEdge && geo.bottom() == fullRect.bottom()) {
|
|
|
|
|
corner.ry() += frameMargins.bottom();
|
|
|
|
|
}
|
|
|
|
|
if (titlePos != AbstractClient::PositionTop && geo.top() == fullRect.top()) {
|
|
|
|
|
if (titlePos != Qt::TopEdge && geo.top() == fullRect.top()) {
|
|
|
|
|
corner.ry() -= frameMargins.top();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -863,7 +863,7 @@ int Workspace::packPositionLeft(const AbstractClient *client, int oldX, bool lef
|
|
|
|
|
client,
|
|
|
|
|
QPoint(client->frameGeometry().left() - 1, client->frameGeometry().center().y())).left();
|
|
|
|
|
}
|
|
|
|
|
if (client->titlebarPosition() != AbstractClient::PositionLeft) {
|
|
|
|
|
if (client->titlebarPosition() != Qt::LeftEdge) {
|
|
|
|
|
const int right = newX - client->frameMargins().left();
|
|
|
|
|
QRect frameGeometry = client->frameGeometry();
|
|
|
|
|
frameGeometry.moveRight(right);
|
|
|
|
@ -897,7 +897,7 @@ int Workspace::packPositionRight(const AbstractClient *client, int oldX, bool ri
|
|
|
|
|
client,
|
|
|
|
|
QPoint(client->frameGeometry().right() + 1, client->frameGeometry().center().y())).right();
|
|
|
|
|
}
|
|
|
|
|
if (client->titlebarPosition() != AbstractClient::PositionRight) {
|
|
|
|
|
if (client->titlebarPosition() != Qt::RightEdge) {
|
|
|
|
|
const int right = newX + client->frameMargins().right();
|
|
|
|
|
QRect frameGeometry = client->frameGeometry();
|
|
|
|
|
frameGeometry.moveRight(right);
|
|
|
|
@ -931,7 +931,7 @@ int Workspace::packPositionUp(const AbstractClient *client, int oldY, bool topEd
|
|
|
|
|
client,
|
|
|
|
|
QPoint(client->frameGeometry().center().x(), client->frameGeometry().top() - 1)).top();
|
|
|
|
|
}
|
|
|
|
|
if (client->titlebarPosition() != AbstractClient::PositionTop) {
|
|
|
|
|
if (client->titlebarPosition() != Qt::TopEdge) {
|
|
|
|
|
const int top = newY - client->frameMargins().top();
|
|
|
|
|
QRect frameGeometry = client->frameGeometry();
|
|
|
|
|
frameGeometry.moveTop(top);
|
|
|
|
@ -965,7 +965,7 @@ int Workspace::packPositionDown(const AbstractClient *client, int oldY, bool bot
|
|
|
|
|
client,
|
|
|
|
|
QPoint(client->frameGeometry().center().x(), client->frameGeometry().bottom() + 1)).bottom();
|
|
|
|
|
}
|
|
|
|
|
if (client->titlebarPosition() != AbstractClient::PositionBottom) {
|
|
|
|
|
if (client->titlebarPosition() != Qt::BottomEdge) {
|
|
|
|
|
const int bottom = newY + client->frameMargins().bottom();
|
|
|
|
|
QRect frameGeometry = client->frameGeometry();
|
|
|
|
|
frameGeometry.moveBottom(bottom);
|
|
|
|
|