summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/kms/qkmswindow.cpp11
-rw-r--r--src/plugins/platforms/kms/qkmswindow.h2
2 files changed, 9 insertions, 4 deletions
diff --git a/src/plugins/platforms/kms/qkmswindow.cpp b/src/plugins/platforms/kms/qkmswindow.cpp
index 691d9a832c..f016d9d621 100644
--- a/src/plugins/platforms/kms/qkmswindow.cpp
+++ b/src/plugins/platforms/kms/qkmswindow.cpp
@@ -43,22 +43,25 @@
#include "qkmsscreen.h"
#include <qpa/qwindowsysteminterface.h>
+#include <qpa/qplatformwindow_p.h>
+
QT_BEGIN_NAMESPACE
QKmsWindow::QKmsWindow(QWindow *window)
: QPlatformWindow(window)
{
+ Q_D(QPlatformWindow);
m_screen = QPlatformScreen::platformScreenForWindow(window);
-
static_cast<QKmsScreen *>(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 c9b3c2692f..ba76b2beac 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);