summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbconnection.h
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@nokia.com>2012-07-04 15:59:02 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-16 14:22:55 +0200
commit60831935490722202d09dfc7adc9bf1f0708dcdf (patch)
treeb5e7e3486db2d7cb45260b7dda46a9b1ed8b0d0d /src/plugins/platforms/xcb/qxcbconnection.h
parent21785481114c58aa84329aa20a21ba1f09773373 (diff)
handle XInput 2.2 multipoint touch events
Change-Id: I5c925ae3e191244c7ab9415e4ba2fe49b93dd2af Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbconnection.h')
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
index 2c7b11fb10..902ff831f9 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.h
+++ b/src/plugins/platforms/xcb/qxcbconnection.h
@@ -51,6 +51,7 @@
#include <QThread>
#include <QVector>
#include <QVarLengthArray>
+#include <qpa/qwindowsysteminterface.h>
#ifndef QT_NO_TABLETEVENT
#include <QTabletEvent>
@@ -58,6 +59,11 @@
#ifdef XCB_USE_XINPUT2_MAEMO
struct XInput2MaemoData;
+#elif XCB_USE_XINPUT2
+#ifdef XI_TouchBeginMask
+#define XCB_USE_XINPUT22 // XI 2.2 adds multi-point touch support
+#endif
+struct XInput2DeviceData;
#endif
//#define Q_XCB_DEBUG
@@ -397,6 +403,7 @@ private:
#ifdef XCB_USE_XINPUT2
void initializeXInput2();
void finalizeXInput2();
+ XInput2DeviceData *deviceForId(int id);
void xi2HandleEvent(xcb_ge_event_t *event);
int m_xiOpCode, m_xiEventBase, m_xiErrorBase;
#ifndef QT_NO_TABLETEVENT
@@ -417,7 +424,7 @@ private:
};
void xi2QueryTabletData(void *dev, TabletData *tabletData); // use no XI stuff in headers
void xi2SetupTabletDevices();
- void xi2HandleTabletEvent(void *event, TabletData *tabletData);
+ bool xi2HandleTabletEvent(void *event, TabletData *tabletData);
void xi2ReportTabletEvent(const TabletData &tabletData, void *event);
QVector<TabletData> m_tabletData;
#endif
@@ -459,6 +466,9 @@ private:
QXcbEventReader *m_reader;
#ifdef XCB_USE_XINPUT2_MAEMO
XInput2MaemoData *m_xinputData;
+#elif defined(XCB_USE_XINPUT2)
+ QHash<int, QWindowSystemInterface::TouchPoint> m_touchPoints;
+ QHash<int, XInput2DeviceData*> m_touchDevices;
#endif
#ifdef XCB_USE_DRI2
uint32_t m_dri2_major;