summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowswindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/windows/qwindowswindow.cpp')
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp
index 5edf40b886..96027f8e0a 100644
--- a/src/plugins/platforms/windows/qwindowswindow.cpp
+++ b/src/plugins/platforms/windows/qwindowswindow.cpp
@@ -43,7 +43,7 @@
#include "qwindowsscreen.h"
#include "qwindowsintegration.h"
#include "qwindowsnativeinterface.h"
-#include "qwindowsopenglcontext.h"
+#include "qwindowsglcontext.h"
#ifdef QT_NO_CURSOR
# include "qwindowscursor.h"
#endif
@@ -1300,6 +1300,12 @@ void QWindowsWindow::updateTransientParent() const
if (const QWindowsWindow *tw = QWindowsWindow::windowsWindowOf(tp))
if (!tw->testFlag(WithinDestroy)) // Prevent destruction by parent window (QTBUG-35499, QTBUG-36666)
newTransientParent = tw->handle();
+
+ // QTSOLBUG-71: When using the MFC/winmigrate solution, it is possible that a child
+ // window is found, which can cause issues with modality. Loop up to top level.
+ while (newTransientParent && (GetWindowLongPtr(newTransientParent, GWL_STYLE) & WS_CHILD) != 0)
+ newTransientParent = GetParent(newTransientParent);
+
if (newTransientParent != oldTransientParent)
SetWindowLongPtr(m_data.hwnd, GWL_HWNDPARENT, LONG_PTR(newTransientParent));
}
@@ -1609,6 +1615,16 @@ bool QWindowsWindow::handleWmPaint(HWND hwnd, UINT message,
return false;
PAINTSTRUCT ps;
+#if QT_CONFIG(dynamicgl)
+ // QTBUG-58178: GL software rendering needs InvalidateRect() to suppress
+ // artifacts while resizing.
+ if (testFlag(OpenGLSurface)
+ && QOpenGLStaticContext::opengl32.moduleIsNotOpengl32()
+ && QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGL) {
+ InvalidateRect(hwnd, 0, false);
+ }
+#endif // dynamicgl
+
BeginPaint(hwnd, &ps);
// Observed painting problems with Aero style disabled (QTBUG-7865).