summaryrefslogtreecommitdiff
path: root/src/compositor/wayland_wrapper/qwlinputdevice_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/wayland_wrapper/qwlinputdevice_p.h')
-rw-r--r--src/compositor/wayland_wrapper/qwlinputdevice_p.h53
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,