mirror of
https://github.com/KDE/latte-dock.git
synced 2025-03-24 02:50:35 +03:00
consider mask thickness for struts
This commit is contained in:
parent
fd9025f632
commit
a4764024db
@ -193,6 +193,36 @@ void Effects::setSettingsMaskSubtracted(bool enabled)
|
||||
emit settingsMaskSubtractedChanged();
|
||||
}
|
||||
|
||||
int Effects::maskThickness() const
|
||||
{
|
||||
if (m_view->mask().isEmpty()) {
|
||||
return m_view->formFactor() == Plasma::Types::Horizontal ? m_view->width() : m_view->height();
|
||||
}
|
||||
|
||||
switch (m_view->location()) {
|
||||
case Plasma::Types::TopEdge:
|
||||
return m_view->mask().boundingRect().bottom();
|
||||
break;
|
||||
|
||||
case Plasma::Types::LeftEdge:
|
||||
return m_view->mask().boundingRect().right();
|
||||
break;
|
||||
|
||||
case Plasma::Types::RightEdge:
|
||||
return m_view->mask().boundingRect().left();
|
||||
break;
|
||||
|
||||
case Plasma::Types::BottomEdge:
|
||||
return m_view->mask().boundingRect().top();
|
||||
break;
|
||||
|
||||
default:
|
||||
return 64;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QRegion Effects::subtrackedMaskFromWindow(QRegion initialRegion, QQuickView *window)
|
||||
{
|
||||
QRegion subtractedMask = initialRegion;
|
||||
|
@ -83,6 +83,8 @@ public:
|
||||
int innerShadow() const;
|
||||
void setInnerShadow(int shadow);
|
||||
|
||||
int maskThickness() const;
|
||||
|
||||
QRect mask() const;
|
||||
void setMask(QRect area);
|
||||
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "visibilitymanager.h"
|
||||
|
||||
// local
|
||||
#include "effects.h"
|
||||
#include "positioner.h"
|
||||
#include "screenedgeghostwindow.h"
|
||||
#include "view.h"
|
||||
@ -267,26 +268,28 @@ QRect VisibilityManager::acceptableStruts()
|
||||
{
|
||||
QRect calcs;
|
||||
|
||||
int visibleThickness = qMin(m_latteView->effects()->maskThickness(), m_latteView->normalThickness());
|
||||
|
||||
switch (m_latteView->location()) {
|
||||
case Plasma::Types::TopEdge: {
|
||||
calcs = QRect(m_latteView->x(), m_latteView->y(), m_latteView->width(), m_latteView->normalThickness());
|
||||
calcs = QRect(m_latteView->x(), m_latteView->y(), m_latteView->width(), visibleThickness);
|
||||
break;
|
||||
}
|
||||
|
||||
case Plasma::Types::BottomEdge: {
|
||||
int y = m_latteView->y() + m_latteView->height() - m_latteView->normalThickness();
|
||||
calcs = QRect(m_latteView->x(), y, m_latteView->width(), m_latteView->normalThickness());
|
||||
int y = m_latteView->y() + m_latteView->height() - visibleThickness;
|
||||
calcs = QRect(m_latteView->x(), y, m_latteView->width(), visibleThickness);
|
||||
break;
|
||||
}
|
||||
|
||||
case Plasma::Types::LeftEdge: {
|
||||
calcs = QRect(m_latteView->x(), m_latteView->y(), m_latteView->normalThickness(), m_latteView->height());
|
||||
calcs = QRect(m_latteView->x(), m_latteView->y(), visibleThickness, m_latteView->height());
|
||||
break;
|
||||
}
|
||||
|
||||
case Plasma::Types::RightEdge: {
|
||||
int x = m_latteView->x() + m_latteView->width() - m_latteView->normalThickness();
|
||||
calcs = QRect(x, m_latteView->y(), m_latteView->normalThickness(), m_latteView->height());
|
||||
int x = m_latteView->x() + m_latteView->width() - visibleThickness;
|
||||
calcs = QRect(x, m_latteView->y(), visibleThickness, m_latteView->height());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user