diff options
Diffstat (limited to 'src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp')
-rw-r--r-- | src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp b/src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp index cf4937b..3c957d6 100644 --- a/src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp +++ b/src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp @@ -34,10 +34,20 @@ QT_BEGIN_NAMESPACE namespace Phonon { + static inline QWindow *windowForWidget(QWidget *widget) + { + if (QWindow *window = widget->windowHandle()) + return window; + if (QWidget *nativeParent = widget->nativeParentWidget()) + return nativeParent->windowHandle(); + return 0; + } + static inline HWND hwndForWidget(QWidget *widget) { - QWindow *window = widget->windowHandle(); - return static_cast<HWND> (QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)); + if (QWindow *window = windowForWidget(widget)) + return static_cast<HWND> (QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window)); + return 0; } static inline HDC getDC(const QWidget *widget) |