1
0
mirror of https://github.com/KDE/latte-dock.git synced 2025-03-30 14:50:12 +03:00

set minimumLength for ScreenEdgeGhostWindow

--set a minimumLength in order to avoid the indicator
to become TOO SMALL and not noticable. The minimum
length has been set to be 25% of the screen edge length
that the view as attached.
This commit is contained in:
Michail Vourlakos 2019-12-27 19:41:05 +02:00
parent 9b6f597ce6
commit 502571b09e

View File

@ -193,26 +193,43 @@ void ScreenEdgeGhostWindow::updateGeometry()
thickness = 6;
}
int length{30};
int lengthDifference{0};
if (m_latteView->formFactor() == Plasma::Types::Horizontal) {
//! set minimum length to be 25% of screen width
length = qMax(m_latteView->screenGeometry().width()/4,qMin(m_latteView->absoluteGeometry().width(), m_latteView->screenGeometry().width() - 1));
lengthDifference = qMax(0,length - m_latteView->absoluteGeometry().width());
} else {
//! set minimum length to be 25% of screen height
length = qMax(m_latteView->screenGeometry().height()/4,qMin(m_latteView->absoluteGeometry().height(), m_latteView->screenGeometry().height() - 1));
lengthDifference = qMax(0,length - m_latteView->absoluteGeometry().height());
}
if (m_latteView->location() == Plasma::Types::BottomEdge) {
newGeometry.setX(m_latteView->absoluteGeometry().left());
int xF = qMax(m_latteView->screenGeometry().left(), m_latteView->absoluteGeometry().left() - lengthDifference);
newGeometry.setX(xF);
newGeometry.setY(m_latteView->screenGeometry().bottom() - thickness);
} else if (m_latteView->location() == Plasma::Types::TopEdge) {
newGeometry.setX(m_latteView->absoluteGeometry().left());
int xF = qMax(m_latteView->screenGeometry().left(), m_latteView->absoluteGeometry().left() - lengthDifference);
newGeometry.setX(xF);
newGeometry.setY(m_latteView->screenGeometry().top());
} else if (m_latteView->location() == Plasma::Types::LeftEdge) {
int yF = qMax(m_latteView->screenGeometry().top(), m_latteView->absoluteGeometry().top() - lengthDifference);
newGeometry.setX(m_latteView->screenGeometry().left());
newGeometry.setY(m_latteView->absoluteGeometry().top());
newGeometry.setY(yF);
} else if (m_latteView->location() == Plasma::Types::RightEdge) {
int yF = qMax(m_latteView->screenGeometry().top(), m_latteView->absoluteGeometry().top() - lengthDifference);
newGeometry.setX(m_latteView->screenGeometry().right() - thickness);
newGeometry.setY(m_latteView->absoluteGeometry().top());
newGeometry.setY(yF);
}
if (m_latteView->formFactor() == Plasma::Types::Horizontal) {
newGeometry.setWidth(qMin(m_latteView->absoluteGeometry().width(), m_latteView->screenGeometry().width() - 1));
newGeometry.setWidth(length);
newGeometry.setHeight(thickness + 1);
} else {
newGeometry.setWidth(thickness + 1);
newGeometry.setHeight(qMin(m_latteView->absoluteGeometry().height(), m_latteView->screenGeometry().height() - 1));
newGeometry.setHeight(length);
}
m_calculatedGeometry = newGeometry;