diff options
Diffstat (limited to 'src/multimediawidgets/qvideowidget.cpp')
-rw-r--r-- | src/multimediawidgets/qvideowidget.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp index e9977c5a8..ab552b90d 100644 --- a/src/multimediawidgets/qvideowidget.cpp +++ b/src/multimediawidgets/qvideowidget.cpp @@ -324,6 +324,7 @@ QWindowVideoWidgetBackend::QWindowVideoWidgetBackend( control->setWinId(widget->winId()); #if defined(Q_OS_WIN) + // Disable updates to avoid flickering while resizing/moving. m_widget->setUpdatesEnabled(false); #endif } @@ -1001,6 +1002,23 @@ void QVideoWidget::paintEvent(QPaintEvent *event) } } +#if defined(Q_OS_WIN) +bool QVideoWidget::nativeEvent(const QByteArray &eventType, void *message, long *result) +{ + Q_D(QVideoWidget); + Q_UNUSED(eventType); + Q_UNUSED(result); + + MSG *mes = reinterpret_cast<MSG *>(message); + if (mes->message == WM_PAINT || mes->message == WM_ERASEBKGND) { + if (d->windowBackend) + d->windowBackend->showEvent(); + } + + return false; +} +#endif + #include "moc_qvideowidget.cpp" #include "moc_qvideowidget_p.cpp" QT_END_NAMESPACE |