| diff -Naur qt-everywhere-src-5.12.4-orig/qtbase/src/widgets/dialogs/qmessagebox.cpp qt-everywhere-src-5.12.4/qtbase/src/widgets/dialogs/qmessagebox.cpp |
| --- qt-everywhere-src-5.12.4-orig/qtbase/src/widgets/dialogs/qmessagebox.cpp 2019-06-12 23:59:14.000000000 +0300 |
| +++ qt-everywhere-src-5.12.4/qtbase/src/widgets/dialogs/qmessagebox.cpp 2019-06-15 15:58:57.794713900 +0300 |
| @@ -77,9 +77,11 @@ |
| #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) |
| HMENU qt_getWindowsSystemMenu(const QWidget *w) |
| { |
| - if (QWindow *window = QApplicationPrivate::windowForWidget(w)) |
| - if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) |
| - return GetSystemMenu(reinterpret_cast<HWND>(handle), false); |
| + if (QGuiApplication::platformNativeInterface()) { |
| + if (QWindow *window = QApplicationPrivate::windowForWidget(w)) |
| + if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)) |
| + return GetSystemMenu(reinterpret_cast<HWND>(handle), false); |
| + } |
| return 0; |
| } |
| #endif |
| diff -Naur qt-everywhere-src-5.12.4-orig/qtbase/src/widgets/dialogs/qwizard_win.cpp qt-everywhere-src-5.12.4/qtbase/src/widgets/dialogs/qwizard_win.cpp |
| --- qt-everywhere-src-5.12.4-orig/qtbase/src/widgets/dialogs/qwizard_win.cpp 2019-06-12 23:59:14.000000000 +0300 |
| +++ qt-everywhere-src-5.12.4/qtbase/src/widgets/dialogs/qwizard_win.cpp 2019-06-15 15:58:57.810314000 +0300 |
| @@ -176,10 +176,11 @@ |
| // The dynamic property takes effect when creating the platform window. |
| window->setProperty("_q_windowsCustomMargins", customMarginsV); |
| // If a platform window exists, change via native interface. |
| - if (QPlatformWindow *platformWindow = window->handle()) { |
| - QGuiApplication::platformNativeInterface()-> |
| - setWindowProperty(platformWindow, QStringLiteral("WindowsCustomMargins"), |
| - customMarginsV); |
| + if (QGuiApplication::platformNativeInterface()) { |
| + if (QPlatformWindow *platformWindow = window->handle()) |
| + QGuiApplication::platformNativeInterface()-> |
| + setWindowProperty(platformWindow, QStringLiteral("WindowsCustomMargins"), |
| + customMarginsV); |
| } |
| } |
| } |
| @@ -558,6 +559,8 @@ |
| // wizard is a child window. |
| HDC QVistaHelper::backingStoreDC(const QWidget *wizard, QPoint *offset) |
| { |
| + if (!QGuiApplication::platformNativeInterface()) |
| + return static_cast<HDC>(0); |
| HDC hdc = static_cast<HDC>(QGuiApplication::platformNativeInterface()->nativeResourceForBackingStore(QByteArrayLiteral("getDC"), wizard->backingStore())); |
| *offset = QPoint(0, 0); |
| if (!wizard->windowHandle()) |
| @@ -572,7 +575,7 @@ |
| // Do not use winId() as this enforces native children of the parent |
| // widget when called before show() as happens when calling setWizardStyle(). |
| if (QWindow *window = wizard->windowHandle()) |
| - if (window->handle()) |
| + if (window->handle() && QGuiApplication::platformNativeInterface()) |
| if (void *vHwnd = QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("handle"), window)) |
| return static_cast<HWND>(vHwnd); |
| qWarning().nospace() << "Failed to obtain HWND for wizard."; |