diff options
-rw-r--r-- | src/quickwidgets/qquickwidget.cpp | 15 | ||||
-rw-r--r-- | src/quickwidgets/qquickwidget.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp index 7458d2de01..d530e0c18f 100644 --- a/src/quickwidgets/qquickwidget.cpp +++ b/src/quickwidgets/qquickwidget.cpp @@ -754,6 +754,21 @@ void QQuickWidget::mouseMoveEvent(QMouseEvent *e) d->offscreenWindow->mouseMoveEvent(&mappedEvent); } +void QQuickWidget::mouseDoubleClickEvent(QMouseEvent *e) +{ + Q_D(QQuickWidget); + Q_QUICK_PROFILE(addEvent<QQuickProfiler::Mouse>()); + + // As the second mouse press is suppressed in widget windows we emulate it here for QML. + // See QTBUG-25831 + QMouseEvent pressEvent(QEvent::MouseButtonPress, e->localPos(), e->screenPos(), e->button(), + e->buttons(), e->modifiers()); + d->offscreenWindow->mousePressEvent(&pressEvent); + QMouseEvent mappedEvent(e->type(), e->localPos(), e->screenPos(), e->button(), e->buttons(), + e->modifiers()); + d->offscreenWindow->mouseDoubleClickEvent(&mappedEvent); +} + void QQuickWidget::showEvent(QShowEvent *e) { Q_D(QQuickWidget); diff --git a/src/quickwidgets/qquickwidget.h b/src/quickwidgets/qquickwidget.h index 92b060647f..614d5b82a6 100644 --- a/src/quickwidgets/qquickwidget.h +++ b/src/quickwidgets/qquickwidget.h @@ -111,6 +111,7 @@ protected: virtual void mousePressEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void mouseMoveEvent(QMouseEvent *); + virtual void mouseDoubleClickEvent(QMouseEvent *); virtual void showEvent(QShowEvent *); virtual void hideEvent(QHideEvent *); |