summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylandinputdevice.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.p.agocs@nokia.com>2012-02-09 15:36:28 +0200
committerLaszlo Agocs <laszlo.p.agocs@nokia.com>2012-02-10 14:26:24 +0100
commitf089f453ae6ea3766a0ec41059371f6dc81ce9df (patch)
treedaf50df72293637bd0a0db2dfba6997e100e8684 /src/plugins/platforms/wayland/qwaylandinputdevice.cpp
parent0a25184b9af19786d8d20c520f93ee0bfc65355f (diff)
Add TouchCancel support.
It maps to the protocol's touch_cancel pretty well. :) Change-Id: Id417aac768106c2f6618b3e7ecb51d6929977c37 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandinputdevice.cpp')
-rw-r--r--src/plugins/platforms/wayland/qwaylandinputdevice.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandinputdevice.cpp b/src/plugins/platforms/wayland/qwaylandinputdevice.cpp
index 126891fa2..ee4ffc1c2 100644
--- a/src/plugins/platforms/wayland/qwaylandinputdevice.cpp
+++ b/src/plugins/platforms/wayland/qwaylandinputdevice.cpp
@@ -45,6 +45,7 @@
#include "qwaylandwindow.h"
#include "qwaylandbuffer.h"
#include "qwaylanddatadevicemanager.h"
+#include "qwaylandtouch.h"
#include <QtGui/private/qpixmap_raster_p.h>
#include <QtGui/QPlatformWindow>
@@ -508,7 +509,16 @@ void QWaylandInputDevice::handleTouchFrame()
void QWaylandInputDevice::inputHandleTouchCancel(void *data, struct wl_input_device *wl_input_device)
{
Q_UNUSED(wl_input_device);
- Q_UNUSED(data);
+ QWaylandInputDevice *self = static_cast<QWaylandInputDevice *>(data);
+
+ self->mPrevTouchPoints.clear();
+ self->mTouchPoints.clear();
+
+ QWaylandTouchExtension *touchExt = self->mQDisplay->touchExtension();
+ if (touchExt)
+ touchExt->touchCanceled();
+
+ QWindowSystemInterface::handleTouchCancelEvent(0, self->mTouchDevice);
}
const struct wl_input_device_listener QWaylandInputDevice::inputDeviceListener = {