From 7e5af3d2903e25404422b705837408ccd89c74b9 Mon Sep 17 00:00:00 2001 From: Johan Klokkahmmer Helsing Date: Thu, 29 Sep 2016 14:59:56 +0200 Subject: Compositor: Send touch events to the surface pressed This changes the API so that QWaylandTouch does not make assumptions about touch focus, and consequently enables writing compositors where multiple clients can receive touch input at the same time. Task-number: QTBUG-56237 Change-Id: I21fe6d9b5ac65e9f910f64cc4a02824119571c52 Reviewed-by: Nedim Hadzic Reviewed-by: Paul Olav Tvete --- src/compositor/compositor_api/qwaylandtouch.h | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/compositor/compositor_api/qwaylandtouch.h') diff --git a/src/compositor/compositor_api/qwaylandtouch.h b/src/compositor/compositor_api/qwaylandtouch.h index f539ce2cd..05ee5ad40 100644 --- a/src/compositor/compositor_api/qwaylandtouch.h +++ b/src/compositor/compositor_api/qwaylandtouch.h @@ -51,6 +51,7 @@ class QWaylandTouchPrivate; class QWaylandSeat; class QWaylandView; class QWaylandClient; +class QWaylandSurface; class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandTouch : public QWaylandObject { @@ -62,19 +63,15 @@ public: QWaylandSeat *seat() const; QWaylandCompositor *compositor() const; - virtual uint sendTouchPointEvent(int id, const QPointF &position, Qt::TouchPointState state); - virtual void sendFrameEvent(); - virtual void sendCancelEvent(); - - virtual void sendFullTouchEvent(QTouchEvent *event); + virtual uint sendTouchPointEvent(QWaylandSurface *surface, int id, const QPointF &position, Qt::TouchPointState state); + virtual void sendFrameEvent(QWaylandClient *client); + virtual void sendCancelEvent(QWaylandClient *client); + virtual void sendFullTouchEvent(QWaylandSurface *surface, QTouchEvent *event); virtual void addClient(QWaylandClient *client, uint32_t id, uint32_t version); - wl_resource *focusResource() const; - private: void focusDestroyed(void *data); - void mouseFocusChanged(QWaylandView *newFocus, QWaylandView *oldFocus); }; QT_END_NAMESPACE -- cgit v1.2.3