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

fix #946,improve kwin edges support

--make the behaviour more robust and be more
precise at geometries used at all times
This commit is contained in:
Michail Vourlakos 2018-04-01 01:04:23 +03:00
parent a6a98f3ac7
commit da5cb9c61f
4 changed files with 21 additions and 4 deletions

View File

@ -97,6 +97,7 @@ class DockView : public PlasmaQuick::ContainmentView {
Q_PROPERTY(QQmlListProperty<QScreen> screens READ screens)
Q_PROPERTY(QRect effectsArea READ effectsArea WRITE setEffectsArea NOTIFY effectsAreaChanged)
Q_PROPERTY(QRect absoluteGeometry READ absGeometry NOTIFY absGeometryChanged)
Q_PROPERTY(QRect localGeometry READ localGeometry WRITE setLocalGeometry NOTIFY localGeometryChanged)
Q_PROPERTY(QRect maskArea READ maskArea WRITE setMaskArea NOTIFY maskAreaChanged)
Q_PROPERTY(QRect screenGeometry READ screenGeometry NOTIFY screenGeometryChanged)

View File

@ -47,6 +47,7 @@ ScreenEdgeGhostWindow::ScreenEdgeGhostWindow(DockView *view) :
connect(m_dockView, &DockView::absGeometryChanged, this, &ScreenEdgeGhostWindow::updateGeometry);
connect(m_dockView, &DockView::screenGeometryChanged, this, &ScreenEdgeGhostWindow::updateGeometry);
connect(m_dockView, &DockView::locationChanged, this, &ScreenEdgeGhostWindow::updateGeometry);
connect(m_dockView, &QQuickView::screenChanged, this, [this]() {
setScreen(m_dockView->screen());
});
@ -132,15 +133,16 @@ void ScreenEdgeGhostWindow::updateGeometry()
}
if (m_dockView->formFactor() == Plasma::Types::Horizontal) {
newGeometry.setWidth(m_dockView->absGeometry().width());
newGeometry.setWidth(qMin(m_dockView->absGeometry().width(), m_dockView->screenGeometry().width() - 1));
newGeometry.setHeight(thickness + 1);
} else {
newGeometry.setWidth(thickness + 1);
newGeometry.setHeight(m_dockView->absGeometry().height());
newGeometry.setHeight(qMin(m_dockView->absGeometry().height(), m_dockView->screenGeometry().height() - 1));
}
setMinimumSize(newGeometry.size());
setMaximumSize(newGeometry.size());
resize(newGeometry.size());
setPosition(newGeometry.x(), newGeometry.y());
if (m_shellSurface) {

View File

@ -157,6 +157,20 @@ Window{
}
}
Text{
text: "Absolute Geometry"+space
}
Text{
text: {
if (dock && dock.absoluteGeometry) {
return dock.absoluteGeometry.x + ", " + dock.absoluteGeometry.y + " " + dock.absoluteGeometry.width + "x" + dock.absoluteGeometry.height;
} else {
return "_,_ _x_";
}
}
}
Text{
text: "Local Geometry"+space
}

View File

@ -465,8 +465,8 @@ Item{
}
//console.log("reached updating geometry ::: "+dock.maskArea);
if((normalState && !dock.visibility.isHidden)
&& !(root.behaveAsPlasmaPanel && root.editMode)){
if(normalState){
var tempGeometry = Qt.rect(dock.maskArea.x, dock.maskArea.y, dock.maskArea.width, dock.maskArea.height);
//the shadows size must be removed from the maskArea