aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@digia.com>2014-02-24 12:45:39 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-25 18:39:35 +0100
commit2befbab62808fa75658cb974ce92e8b1ac558e8e (patch)
tree4b1cc31d9f05c1c0c1f62edecca63aa6c3070735
parent360a51efbea5c236f0d2ac531e65d7614b95ab3b (diff)
Add double-click to QQuickWidget
Task-number: QTBUG-36935 Change-Id: I498561f6bbd5a9b279034d16ef5ae4fb36607ed3 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
-rw-r--r--src/quickwidgets/qquickwidget.cpp15
-rw-r--r--src/quickwidgets/qquickwidget.h1
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 *);