diff --git a/abstract_output.h b/abstract_output.h --- a/abstract_output.h +++ b/abstract_output.h @@ -171,6 +171,8 @@ void setWaylandMode(const QSize &size, int refreshRate); + QSize orientateSize(const QSize &size) const; + private: QPointer m_waylandOutput; QPointer m_xdgOutput; diff --git a/abstract_output.cpp b/abstract_output.cpp --- a/abstract_output.cpp +++ b/abstract_output.cpp @@ -59,10 +59,7 @@ QSize AbstractOutput::physicalSize() const { - if (m_orientation == Qt::PortraitOrientation || m_orientation == Qt::InvertedPortraitOrientation) { - return m_physicalSize.transposed(); - } - return m_physicalSize; + return orientateSize(m_physicalSize); } int AbstractOutput::refreshRate() const @@ -251,4 +248,12 @@ m_waylandOutputDevice->create(); } +QSize AbstractOutput::orientateSize(const QSize &size) const +{ + if (m_orientation == Qt::PortraitOrientation || m_orientation == Qt::InvertedPortraitOrientation) { + return size.transposed(); + } + return size; +} + } diff --git a/plugins/platforms/drm/drm_output.cpp b/plugins/platforms/drm/drm_output.cpp --- a/plugins/platforms/drm/drm_output.cpp +++ b/plugins/platforms/drm/drm_output.cpp @@ -783,11 +783,7 @@ QSize DrmOutput::pixelSize() const { - auto orient = orientation(); - if (orient == Qt::PortraitOrientation || orient == Qt::InvertedPortraitOrientation) { - return QSize(m_mode.vdisplay, m_mode.hdisplay); - } - return QSize(m_mode.hdisplay, m_mode.vdisplay); + return orientateSize(QSize(m_mode.hdisplay, m_mode.vdisplay)); } void DrmOutput::setWaylandMode()