diff --git a/gestures.cpp b/gestures.cpp --- a/gestures.cpp +++ b/gestures.cpp @@ -46,6 +46,9 @@ setMinimumY(geometry.y()); setMaximumX(geometry.x() + geometry.width()); setMaximumY(geometry.y() + geometry.height()); + + Q_ASSERT(m_maximumX >= m_minimumX); + Q_ASSERT(m_maximumY >= m_minimumY); } qreal SwipeGesture::minimumDeltaReachedProgress(const QSizeF &delta) const diff --git a/screenedge.cpp b/screenedge.cpp --- a/screenedge.cpp +++ b/screenedge.cpp @@ -727,8 +727,7 @@ , m_actionLeft(ElectricActionNone) , m_gestureRecognizer(new GestureRecognizer(this)) { - QWidget w; - m_cornerOffset = (w.physicalDpiX() + w.physicalDpiY() + 5) / 6; + m_cornerOffset = (Screens::self()->physicalDpiX(0) + Screens::self()->physicalDpiX(0) + 5) / 6; connect(workspace(), &Workspace::clientRemoved, this, &ScreenEdges::deleteEdgeForClient); } diff --git a/screens.h b/screens.h --- a/screens.h +++ b/screens.h @@ -146,6 +146,9 @@ virtual Qt::ScreenOrientation orientation(int screen) const; + int physicalDpiX(int screen) const; + int physicalDpiY(int screen) const; + public Q_SLOTS: void reconfigure(); diff --git a/screens.cpp b/screens.cpp --- a/screens.cpp +++ b/screens.cpp @@ -229,4 +229,14 @@ m_config = config; } +int Screens::physicalDpiX(int screen) const +{ + return size(screen).width() / physicalSize(screen).width() * qreal(25.4); +} + +int Screens::physicalDpiY(int screen) const +{ + return size(screen).height() / physicalSize(screen).height() * qreal(25.4); +} + } // namespace