diff --git a/src/plugins/platforms/kms/qkmswindow.cpp b/src/plugins/platforms/kms/qkmswindow.cpp index 691d9a832c1..f016d9d6214 100644 --- a/src/plugins/platforms/kms/qkmswindow.cpp +++ b/src/plugins/platforms/kms/qkmswindow.cpp @@ -43,22 +43,25 @@ #include "qkmsscreen.h" #include +#include + QT_BEGIN_NAMESPACE QKmsWindow::QKmsWindow(QWindow *window) : QPlatformWindow(window) { + Q_D(QPlatformWindow); m_screen = QPlatformScreen::platformScreenForWindow(window); - static_cast(m_screen)->initializeWithFormat(window->requestedFormat()); + setGeometry(d->rect); // rect is set to window->geometry() in base ctor } void QKmsWindow::setGeometry(const QRect &rect) { - Q_UNUSED(rect) - //All Windows must be fullscreen + // All windows must be fullscreen QRect fullscreenRect = m_screen->availableGeometry(); - QWindowSystemInterface::handleGeometryChange(window(), fullscreenRect); + if (rect != fullscreenRect) + QWindowSystemInterface::handleGeometryChange(window(), fullscreenRect); QPlatformWindow::setGeometry(fullscreenRect); } diff --git a/src/plugins/platforms/kms/qkmswindow.h b/src/plugins/platforms/kms/qkmswindow.h index c9b3c2692fa..ba76b2beac8 100644 --- a/src/plugins/platforms/kms/qkmswindow.h +++ b/src/plugins/platforms/kms/qkmswindow.h @@ -48,6 +48,8 @@ QT_BEGIN_NAMESPACE class QKmsWindow : public QPlatformWindow { + Q_DECLARE_PRIVATE(QPlatformWindow) + public: QKmsWindow(QWindow *window);