1 #ifndef QWAYLANDINPUTDEVICE_H
2 #define QWAYLANDINPUTDEVICE_H
4 #include <QSocketNotifier>
6 #include <QtGui/QPlatformIntegration>
7 #include <QtGui/QPlatformScreen>
9 #include <wayland-client.h>
10 #include "qwaylandwindowsurface.h"
16 class QWaylandInputDevice {
18 QWaylandInputDevice(struct wl_display *display, uint32_t id);
19 void attach(QWaylandBuffer *buffer, int x, int y);
22 struct wl_display *mDisplay;
23 struct wl_input_device *mInputDevice;
24 QWaylandWindow *mPointerFocus;
25 QWaylandWindow *mKeyboardFocus;
26 static const struct wl_input_device_listener inputDeviceListener;
27 Qt::MouseButtons mButtons;
30 struct xkb_desc *mXkb;
31 Qt::KeyboardModifiers mModifiers;
34 static void inputHandleMotion(void *data,
35 struct wl_input_device *input_device,
38 int32_t sx, int32_t sy);
39 static void inputHandleButton(void *data,
40 struct wl_input_device *input_device,
41 uint32_t time, uint32_t button, uint32_t state);
42 static void inputHandleKey(void *data,
43 struct wl_input_device *input_device,
44 uint32_t time, uint32_t key, uint32_t state);
45 static void inputHandlePointerFocus(void *data,
46 struct wl_input_device *input_device,
47 uint32_t time, struct wl_surface *surface,
48 int32_t x, int32_t y, int32_t sx, int32_t sy);
49 static void inputHandleKeyboardFocus(void *data,
50 struct wl_input_device *input_device,
52 struct wl_surface *surface,
53 struct wl_array *keys);