1
0
mirror of https://github.com/KDE/latte-dock.git synced 2025-03-10 04:58:16 +03:00

Left/RightEdge calculations for availableScrRegion

--preparing the infrastructure calculations in order
to publish to Plasma 5.18 and greater the
availableScreenRectagle and availableScreenRegion
that Latte leaves free in current running
screens.
This commit is contained in:
Michail Vourlakos 2020-01-22 21:36:30 +02:00
parent 4b1580c0bd
commit 0458d53ec9

View File

@ -603,6 +603,67 @@ QRegion Corona::availableScreenRegionWithCriteria(int id,
break;
case Plasma::Types::LeftEdge:
if (view->behaveAsPlasmaPanel()) {
available -= view->geometry();
} else {
QRect realGeometry;
int realHeight = view->maxLength() * view->height();
switch (view->alignment()) {
case Latte::Types::Top:
realGeometry = QRect(view->x(), view->y(),
realThickness, realHeight);
break;
case Latte::Types::Center:
case Latte::Types::Justify:
realGeometry = QRect(view->x(), qMax(view->geometry().y(), view->geometry().center().y() - realHeight / 2),
realThickness, realHeight);
break;
case Latte::Types::Bottom:
realGeometry = QRect(view->x(), view->geometry().bottom() - realHeight + 1,
realThickness, realHeight);
break;
}
available -= realGeometry;
}
break;
case Plasma::Types::RightEdge:
if (view->behaveAsPlasmaPanel()) {
available -= view->geometry();
} else {
QRect realGeometry;
int realHeight = view->maxLength() * view->height();
int realX = view->geometry().right() - realThickness + 1;
switch (view->alignment()) {
case Latte::Types::Top:
realGeometry = QRect(realX, view->y(),
realThickness, realHeight);
break;
case Latte::Types::Center:
case Latte::Types::Justify:
realGeometry = QRect(realX, qMax(view->geometry().y(), view->geometry().center().y() - realHeight / 2),
realThickness, realHeight);
break;
case Latte::Types::Bottom:
realGeometry = QRect(realX, view->geometry().bottom() - realHeight + 1,
realThickness, realHeight);
break;
}
available -= realGeometry;
}
break;
default:
//! bypass clang warnings
break;