From 7980e92e8939ba7d737c618c95dcf6b750e65911 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 21 Dec 2016 19:11:17 +0100 Subject: [PATCH] eglfs: generate an expose whenever the geometry is changing Relevant for QWidget apps with multiple top-level widgets. With real windowing systems a resize will result in an expose. Follow suit. Task-number: QTBUG-57747 Change-Id: I9c6e9fa5e073f85a695df07d63176b1d2d657f25 Reviewed-by: Andy Nichols --- src/plugins/platforms/eglfs/api/qeglfswindow.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/eglfs/api/qeglfswindow.cpp b/src/plugins/platforms/eglfs/api/qeglfswindow.cpp index 12108fd1c4..9b4732eab4 100644 --- a/src/plugins/platforms/eglfs/api/qeglfswindow.cpp +++ b/src/plugins/platforms/eglfs/api/qeglfswindow.cpp @@ -131,7 +131,6 @@ void QEglFSWindow::create() m_flags |= HasNativeWindow; setGeometry(QRect()); // will become fullscreen - QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), geometry().size())); resetSurface(); @@ -243,11 +242,15 @@ void QEglFSWindow::setGeometry(const QRect &r) else rect = r; + const bool changed = rect != QPlatformWindow::geometry(); QPlatformWindow::setGeometry(rect); // if we corrected the size, trigger a resize event if (rect != r) QWindowSystemInterface::handleGeometryChange(window(), rect, r); + + if (changed) + QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), rect.size())); } QRect QEglFSWindow::geometry() const