diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2017-07-21 12:06:50 +0200 |
---|---|---|
committer | Johan Helsing <johan.helsing@qt.io> | 2017-08-24 07:28:54 +0000 |
commit | fe99464d6057a1a8d3db2389c65079a9564ac8d3 (patch) | |
tree | 4e7642793a7730cc517c9ea07ff99f2e05caf178 /src/compositor/compositor_api/qwaylandpointer_p.h | |
parent | 25cde2cc337740823b28898a54c05ec95b82d119 (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.h | 6 |
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; |