diff options
Diffstat (limited to 'src/compositor/wayland_wrapper/qwlinputdevice_p.h')
-rw-r--r-- | src/compositor/wayland_wrapper/qwlinputdevice_p.h | 53 |
1 files changed, 14 insertions, 39 deletions
diff --git a/src/compositor/wayland_wrapper/qwlinputdevice_p.h b/src/compositor/wayland_wrapper/qwlinputdevice_p.h index fd1b0fb4..8ad8a0a7 100644 --- a/src/compositor/wayland_wrapper/qwlinputdevice_p.h +++ b/src/compositor/wayland_wrapper/qwlinputdevice_p.h @@ -45,6 +45,7 @@ #include <QtCore/QList> #include <QtCore/QPoint> +#include <QtCore/QScopedPointer> #ifndef QT_NO_WAYLAND_XKB #include <xkbcommon/xkbcommon.h> @@ -64,8 +65,11 @@ class Compositor; class DataDevice; class Surface; class DataDeviceManager; +class Pointer; +class Keyboard; +class Touch; -class InputDevice : public QtWaylandServer::wl_seat, public QtWaylandServer::wl_pointer, public QtWaylandServer::wl_keyboard, public QtWaylandServer::wl_touch +class InputDevice : public QtWaylandServer::wl_seat, public QtWaylandServer::wl_touch { public: InputDevice(QWaylandInputDevice *handle, Compositor *compositor); @@ -77,9 +81,6 @@ public: void sendMouseMoveEvent(Surface *surface, const QPointF &localPos, const QPointF &globalPos = QPointF()); void sendMouseWheelEvent(Qt::Orientation orientation, int delta); - void sendKeyPressEvent(uint code); - void sendKeyReleaseEvent(uint code); - void sendTouchPointEvent(int id, double x, double y, Qt::TouchPointState state); void sendTouchFrameEvent(); void sendTouchCancelEvent(); @@ -100,13 +101,13 @@ public: Compositor *compositor() const; QWaylandInputDevice *handle() const; - ::wl_pointer *pointerDevice(); - ::wl_keyboard *keyboardDevice(); - ::wl_touch *touchDevice(); + Pointer *pointerDevice(); + Keyboard *keyboardDevice(); + Touch *touchDevice(); - const ::wl_pointer *pointerDevice() const; - const ::wl_keyboard *keyboardDevice() const; - const ::wl_touch *touchDevice() const; + const Pointer *pointerDevice() const; + const Keyboard *keyboardDevice() const; + const Touch *touchDevice() const; static InputDevice *fromSeatResource(struct ::wl_resource *resource) { @@ -114,44 +115,18 @@ public: } private: - void initDevices(); - void releaseDevices(); void cleanupDataDeviceForClient(struct wl_client *client, bool destroyDev); - void updateModifierState(uint key, int state); - void sendKeyModifiers(wl_resource *resource); QWaylandInputDevice *m_handle; Compositor *m_compositor; QList<DataDevice *> m_data_devices; - struct { - ::wl_pointer pointer; - ::wl_keyboard keyboard; - ::wl_touch touch; - } m_device_interfaces; - - ::wl_seat m_seat; - -#ifndef QT_NO_WAYLAND_XKB - struct xkb_keymap *m_keymap; - struct xkb_state *m_state; - int m_keymap_fd; - size_t m_keymap_size; - char *m_keymap_area; -#endif - - uint32_t toWaylandButton(Qt::MouseButton button); + QScopedPointer<Pointer> m_pointer; + QScopedPointer<Keyboard> m_keyboard; + QScopedPointer<Touch> m_touch; void seat_bind_resource(wl_seat::Resource *resource) Q_DECL_OVERRIDE; - void pointer_set_cursor(wl_pointer::Resource *resource, - uint32_t serial, - struct wl_resource *surface, - int32_t hotspot_x, - int32_t hotspot_y) Q_DECL_OVERRIDE; - - void keyboard_bind_resource(wl_keyboard::Resource *resource) Q_DECL_OVERRIDE; - void seat_get_pointer(wl_seat::Resource *resource, uint32_t id) Q_DECL_OVERRIDE; void seat_get_keyboard(wl_seat::Resource *resource, |