From 0e3ac5dea62e5427aa46e8c34cc4c85554d824c9 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 31 Aug 2011 11:30:45 +0300 Subject: Touch event support for QWindow. Change-Id: I83ddc48a9093856d975b25f0426db96264afeeef Reviewed-on: http://codereview.qt.nokia.com/3920 Reviewed-by: Gunnar Sletta --- src/widgets/kernel/qwidgetwindow_qpa.cpp | 11 +++++++++++ src/widgets/kernel/qwidgetwindow_qpa_p.h | 1 + 2 files changed, 12 insertions(+) (limited to 'src/widgets/kernel') diff --git a/src/widgets/kernel/qwidgetwindow_qpa.cpp b/src/widgets/kernel/qwidgetwindow_qpa.cpp index ab8bacc1c7..a6bbfe4266 100644 --- a/src/widgets/kernel/qwidgetwindow_qpa.cpp +++ b/src/widgets/kernel/qwidgetwindow_qpa.cpp @@ -83,6 +83,12 @@ bool QWidgetWindow::event(QEvent *event) handleMouseEvent(static_cast(event)); return true; + case QEvent::TouchBegin: + case QEvent::TouchUpdate: + case QEvent::TouchEnd: + handleTouchEvent(static_cast(event)); + return true; + case QEvent::Move: handleMoveEvent(static_cast(event)); return true; @@ -257,6 +263,11 @@ void QWidgetWindow::handleMouseEvent(QMouseEvent *event) } } +void QWidgetWindow::handleTouchEvent(QTouchEvent *event) +{ + QApplicationPrivate::translateRawTouchEvent(m_widget, event->deviceType(), event->touchPoints()); +} + void QWidgetWindow::handleKeyEvent(QKeyEvent *event) { if (QApplicationPrivate::instance()->modalState() && !qt_try_modal(m_widget, event->type())) diff --git a/src/widgets/kernel/qwidgetwindow_qpa_p.h b/src/widgets/kernel/qwidgetwindow_qpa_p.h index 4253072933..86290c693a 100644 --- a/src/widgets/kernel/qwidgetwindow_qpa_p.h +++ b/src/widgets/kernel/qwidgetwindow_qpa_p.h @@ -71,6 +71,7 @@ protected: void handleEnterLeaveEvent(QEvent *); void handleKeyEvent(QKeyEvent *); void handleMouseEvent(QMouseEvent *); + void handleTouchEvent(QTouchEvent *); void handleMoveEvent(QMoveEvent *); void handleResizeEvent(QResizeEvent *); void handleWheelEvent(QWheelEvent *); -- cgit v1.2.3