summaryrefslogtreecommitdiffstats
path: root/src/multimediawidgets
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@qt.io>2017-01-26 15:40:30 +0100
committerYoann Lopes <yoann.lopes@qt.io>2017-01-26 15:53:44 +0100
commitc5ff5b853b9bca231c54ee07e5238714c0407595 (patch)
tree0a4d842e7fcb6079d7c7b4935843eb1ba46a4422 /src/multimediawidgets
parent7e48870c182e66a8408bbcb4c9469d751a777daa (diff)
parentc1164f874a21959d03893f62db8f8e2def44122d (diff)
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts: .qmake.conf examples/multimediawidgets/videographicsitem/videoplayer.h src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp Change-Id: Id5ce05ffe2cd25657232157b162680b2e24a35ba
Diffstat (limited to 'src/multimediawidgets')
-rw-r--r--src/multimediawidgets/qvideowidget.cpp23
-rw-r--r--src/multimediawidgets/qvideowidget_p.h2
2 files changed, 21 insertions, 4 deletions
diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp
index 3d5e5c830..60a968813 100644
--- a/src/multimediawidgets/qvideowidget.cpp
+++ b/src/multimediawidgets/qvideowidget.cpp
@@ -55,6 +55,9 @@
#include <qboxlayout.h>
#include <qnamespace.h>
+#include <qwindow.h>
+#include <private/qhighdpiscaling_p.h>
+
using namespace Qt;
QT_BEGIN_NAMESPACE
@@ -372,11 +375,23 @@ QSize QWindowVideoWidgetBackend::sizeHint() const
return m_windowControl->nativeSize();
}
+void QWindowVideoWidgetBackend::updateDisplayRect()
+{
+ QRect rect = m_widget->rect();
+ if (QHighDpiScaling::isActive()) {
+ const qreal factor = QHighDpiScaling::factor(m_widget->windowHandle());
+ if (!qFuzzyCompare(factor, qreal(1))) {
+ rect = QRectF(QPointF(rect.topLeft()) * factor,
+ QSizeF(rect.size()) * factor).toRect();
+ }
+ }
+ m_windowControl->setDisplayRect(rect);
+}
+
void QWindowVideoWidgetBackend::showEvent()
{
m_windowControl->setWinId(m_widget->winId());
-
- m_windowControl->setDisplayRect(m_widget->rect());
+ updateDisplayRect();
#if defined(Q_WS_WIN)
m_widget->setUpdatesEnabled(false);
@@ -392,12 +407,12 @@ void QWindowVideoWidgetBackend::hideEvent(QHideEvent *)
void QWindowVideoWidgetBackend::moveEvent(QMoveEvent *)
{
- m_windowControl->setDisplayRect(m_widget->rect());
+ updateDisplayRect();
}
void QWindowVideoWidgetBackend::resizeEvent(QResizeEvent *)
{
- m_windowControl->setDisplayRect(m_widget->rect());
+ updateDisplayRect();
}
void QWindowVideoWidgetBackend::paintEvent(QPaintEvent *event)
diff --git a/src/multimediawidgets/qvideowidget_p.h b/src/multimediawidgets/qvideowidget_p.h
index 6ef4c3645..48b08e093 100644
--- a/src/multimediawidgets/qvideowidget_p.h
+++ b/src/multimediawidgets/qvideowidget_p.h
@@ -211,6 +211,8 @@ public:
#endif
private:
+ void updateDisplayRect();
+
QMediaService *m_service;
QVideoWindowControl *m_windowControl;
QWidget *m_widget;