diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-07-24 15:09:38 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-24 15:09:38 +0200 |
commit | 509ed01c85c926387f6573dd1b5fe6611fa08118 (patch) | |
tree | cdc2b8a7df4c9778176a1e3341d018971f769daa /src/plugins/platforms/windows/qwindowswindow.cpp | |
parent | 288e50227dd5af7cdaba7e4b54a61c539021f1e0 (diff) | |
parent | 084c5b3db794af1ce86b2b17455d9be5e64baebe (diff) |
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/plugins/platforms/windows/qwindowswindow.cpp')
-rw-r--r-- | src/plugins/platforms/windows/qwindowswindow.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index c3ec949eef..dc51dbfc88 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -808,8 +808,12 @@ QWindowsWindow::QWindowsWindow(QWindow *aWindow, const WindowData &data) : const Qt::WindowType type = aWindow->type(); if (type == Qt::Desktop) return; // No further handling for Qt::Desktop - if (aWindow->surfaceType() == QWindow::OpenGLSurface) + if (aWindow->surfaceType() == QWindow::OpenGLSurface) { setFlag(OpenGLSurface); +#ifdef QT_OPENGL_ES_2 + setFlag(OpenGL_ES2); +#endif + } if (aWindow->isTopLevel()) { switch (type) { case Qt::Window: @@ -1233,9 +1237,16 @@ void QWindowsWindow::handleGeometryChange() //Prevent recursive resizes for Windows CE if (testFlag(WithinSetStyle)) return; + const QRect previousGeometry = m_data.geometry; m_data.geometry = geometry_sys(); QPlatformWindow::setGeometry(m_data.geometry); QWindowSystemInterface::handleGeometryChange(window(), m_data.geometry); + // QTBUG-32121: OpenGL/normal windows (with exception of ANGLE) do not receive + // expose events when shrinking, synthesize. + if (!testFlag(OpenGL_ES2) && isExposed() + && !(m_data.geometry.width() > previousGeometry.width() || m_data.geometry.height() > previousGeometry.height())) { + fireExpose(QRegion(m_data.geometry), true); + } if (testFlag(SynchronousGeometryChangeEvent)) QWindowSystemInterface::flushWindowSystemEvents(); |