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:
parent
a6a98f3ac7
commit
da5cb9c61f
@ -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)
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user