summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandpointer_p.h
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2017-07-21 12:06:50 +0200
committerJohan Helsing <johan.helsing@qt.io>2017-08-24 07:28:54 +0000
commitfe99464d6057a1a8d3db2389c65079a9564ac8d3 (patch)
tree4e7642793a7730cc517c9ea07ff99f2e05caf178 /src/compositor/compositor_api/qwaylandpointer_p.h
parent25cde2cc337740823b28898a54c05ec95b82d119 (diff)
Send pointer events to all bound resources
Previously we would send events to just one of the bound resources. An example of this, is the breeze Qt style, which would bind to the pointer resource a second time, which resulted in the original resource not receiving any events, which in turn resulted in an unresponsive client. Change-Id: Iac0ffe5d9ef0dfb95db89796515d7eb4a0b38227 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Diffstat (limited to 'src/compositor/compositor_api/qwaylandpointer_p.h')
-rw-r--r--src/compositor/compositor_api/qwaylandpointer_p.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compositor/compositor_api/qwaylandpointer_p.h b/src/compositor/compositor_api/qwaylandpointer_p.h
index f9c247896..0a9ef2329 100644
--- a/src/compositor/compositor_api/qwaylandpointer_p.h
+++ b/src/compositor/compositor_api/qwaylandpointer_p.h
@@ -84,17 +84,19 @@ public:
protected:
void pointer_set_cursor(Resource *resource, uint32_t serial, wl_resource *surface, int32_t hotspot_x, int32_t hotspot_y) override;
void pointer_release(Resource *resource) override;
- void pointer_destroy_resource(Resource *resource) override;
private:
+ const QList<Resource *> pointerResourcesForFocusedSurface() const;
+ uint sendButton(Qt::MouseButton button, uint32_t state);
+
QWaylandSeat *seat;
QWaylandOutput *output;
QPointF localPosition;
QPointF spacePosition;
- struct ::wl_resource *focusResource;
bool hasSentEnter;
+ uint enterSerial;
int buttonCount;