|
|
|
|
@ -371,16 +371,16 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, |
|
|
|
|
{ |
|
|
|
|
QSize borderSnapZone(options->borderSnapZone(), options->borderSnapZone()); |
|
|
|
|
QRect maxRect; |
|
|
|
|
int guideMaximized = MaximizeRestore; |
|
|
|
|
if (c->maximizeMode() != MaximizeRestore) { |
|
|
|
|
int guideMaximized = Client::MaximizeRestore; |
|
|
|
|
if (c->maximizeMode() != Client::MaximizeRestore) { |
|
|
|
|
maxRect = clientArea(MaximizeArea, pos + c->rect().center(), c->desktop()); |
|
|
|
|
QRect geo = c->geometry(); |
|
|
|
|
if (c->maximizeMode() & MaximizeHorizontal && (geo.x() == maxRect.left() || geo.right() == maxRect.right())) { |
|
|
|
|
guideMaximized |= MaximizeHorizontal; |
|
|
|
|
if (c->maximizeMode() & Client::MaximizeHorizontal && (geo.x() == maxRect.left() || geo.right() == maxRect.right())) { |
|
|
|
|
guideMaximized |= Client::MaximizeHorizontal; |
|
|
|
|
borderSnapZone.setWidth(qMax(borderSnapZone.width() + 2, maxRect.width() / 16)); |
|
|
|
|
} |
|
|
|
|
if (c->maximizeMode() & MaximizeVertical && (geo.y() == maxRect.top() || geo.bottom() == maxRect.bottom())) { |
|
|
|
|
guideMaximized |= MaximizeVertical; |
|
|
|
|
if (c->maximizeMode() & Client::MaximizeVertical && (geo.y() == maxRect.top() || geo.bottom() == maxRect.bottom())) { |
|
|
|
|
guideMaximized |= Client::MaximizeVertical; |
|
|
|
|
borderSnapZone.setHeight(qMax(borderSnapZone.height() + 2, maxRect.height() / 16)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -474,7 +474,7 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, |
|
|
|
|
lrx = lx + (*l)->width(); |
|
|
|
|
lry = ly + (*l)->height(); |
|
|
|
|
|
|
|
|
|
if (!(guideMaximized & MaximizeHorizontal) && |
|
|
|
|
if (!(guideMaximized & Client::MaximizeHorizontal) && |
|
|
|
|
(((cy <= lry) && (cy >= ly)) || ((ry >= ly) && (ry <= lry)) || ((cy <= ly) && (ry >= lry)))) { |
|
|
|
|
if ((sOWO ? (cx < lrx) : true) && (qAbs(lrx - cx) < snap) && (qAbs(lrx - cx) < deltaX)) { |
|
|
|
|
deltaX = qAbs(lrx - cx); |
|
|
|
|
@ -486,7 +486,7 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!(guideMaximized & MaximizeVertical) && |
|
|
|
|
if (!(guideMaximized & Client::MaximizeVertical) && |
|
|
|
|
(((cx <= lrx) && (cx >= lx)) || ((rx >= lx) && (rx <= lrx)) || ((cx <= lx) && (rx >= lrx)))) { |
|
|
|
|
if ((sOWO ? (cy < lry) : true) && (qAbs(lry - cy) < snap) && (qAbs(lry - cy) < deltaY)) { |
|
|
|
|
deltaY = qAbs(lry - cy); |
|
|
|
|
@ -500,7 +500,7 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Corner snapping
|
|
|
|
|
if (!(guideMaximized & MaximizeVertical) && (nx == lrx || nx + cw == lx)) { |
|
|
|
|
if (!(guideMaximized & Client::MaximizeVertical) && (nx == lrx || nx + cw == lx)) { |
|
|
|
|
if ((sOWO ? (ry > lry) : true) && (qAbs(lry - ry) < snap) && (qAbs(lry - ry) < deltaY)) { |
|
|
|
|
deltaY = qAbs(lry - ry); |
|
|
|
|
ny = lry - ch; |
|
|
|
|
@ -510,7 +510,7 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, |
|
|
|
|
ny = ly; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!(guideMaximized & MaximizeHorizontal) && (ny == lry || ny + ch == ly)) { |
|
|
|
|
if (!(guideMaximized & Client::MaximizeHorizontal) && (ny == lry || ny + ch == ly)) { |
|
|
|
|
if ((sOWO ? (rx > lrx) : true) && (qAbs(lrx - rx) < snap) && (qAbs(lrx - rx) < deltaX)) { |
|
|
|
|
deltaX = qAbs(lrx - rx); |
|
|
|
|
nx = lrx - cw; |
|
|
|
|
|