diff --git a/app/view/view.cpp b/app/view/view.cpp index 4bc9e8277..955d9c1f6 100644 --- a/app/view/view.cpp +++ b/app/view/view.cpp @@ -486,18 +486,19 @@ void View::updateAbsoluteGeometry(bool bypassChecks) //! experience with struts. Removing them in order to restore correct //! behavior and keeping this comment in order to check for //! multi-screen breakage - QRect absGeometry {x() + m_localGeometry.x(), y() + m_localGeometry.y() - , m_localGeometry.width(), m_localGeometry.height()}; + QRect absGeometry = m_localGeometry; + absGeometry.moveLeft(x() + m_localGeometry.x()); + absGeometry.moveTop(y() + m_localGeometry.y()); - if (isFloatingWindow()) { + if (behaveAsPlasmaPanel()) { if (location() == Plasma::Types::BottomEdge) { - absGeometry.setY(screenGeometry().bottom() - m_screenEdgeMargin - m_normalThickness); + absGeometry.moveTop(screenGeometry().bottom() - m_screenEdgeMargin - m_normalThickness); } else if (location() == Plasma::Types::TopEdge) { - absGeometry.setY(screenGeometry().top() + m_screenEdgeMargin); + absGeometry.moveTop(screenGeometry().top() + m_screenEdgeMargin); } else if (location() == Plasma::Types::LeftEdge) { - absGeometry.setX(screenGeometry().left() + m_screenEdgeMargin); + absGeometry.moveLeft(screenGeometry().left() + m_screenEdgeMargin); } else if (location() == Plasma::Types::RightEdge) { - absGeometry.setX(screenGeometry().right() - m_screenEdgeMargin - m_normalThickness); + absGeometry.moveLeft(screenGeometry().right() - m_screenEdgeMargin - m_normalThickness); } }