summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylandinputdevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandinputdevice.h')
-rw-r--r--src/plugins/platforms/wayland/qwaylandinputdevice.h146
1 files changed, 86 insertions, 60 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandinputdevice.h b/src/plugins/platforms/wayland/qwaylandinputdevice.h
index 0146af9bd..f6eb66ca0 100644
--- a/src/plugins/platforms/wayland/qwaylandinputdevice.h
+++ b/src/plugins/platforms/wayland/qwaylandinputdevice.h
@@ -67,87 +67,113 @@ class QWaylandInputDevice {
public:
QWaylandInputDevice(QWaylandDisplay *display, uint32_t id);
~QWaylandInputDevice();
+
+ uint32_t capabilities() const { return mCaps; }
+
+ struct wl_seat *wl_seat() const { return mSeat; }
+
void attach(QWaylandBuffer *buffer, int x, int y);
void handleWindowDestroyed(QWaylandWindow *window);
- struct wl_input_device *wl_input_device() const { return mInputDevice; }
void setTransferDevice(struct wl_data_device *device);
struct wl_data_device *transferDevice() const;
- struct wl_input_device *handle() const;
-
void removeMouseButtonFromState(Qt::MouseButton button);
+
private:
QWaylandDisplay *mQDisplay;
struct wl_display *mDisplay;
- struct wl_input_device *mInputDevice;
+
+ struct wl_seat *mSeat;
+ uint32_t mCaps;
+
+ struct {
+ struct wl_pointer *pointer;
+ struct wl_keyboard *keyboard;
+ struct wl_touch *touch;
+ } mDeviceInterfaces;
+
struct wl_data_device *mTransferDevice;
QWaylandWindow *mPointerFocus;
QWaylandWindow *mKeyboardFocus;
QWaylandWindow *mTouchFocus;
- static const struct wl_input_device_listener inputDeviceListener;
+
Qt::MouseButtons mButtons;
QPointF mSurfacePos;
QPointF mGlobalPos;
Qt::KeyboardModifiers mModifiers;
uint32_t mTime;
- static void inputHandleMotion(void *data,
- struct wl_input_device *input_device,
- uint32_t time,
- wl_fixed_t sx, wl_fixed_t sy);
- static void inputHandleButton(void *data,
- struct wl_input_device *input_device,
- uint32_t serial, uint32_t time,
- uint32_t button, uint32_t state);
- static void inputHandleAxis(void *data,
- struct wl_input_device *wl_input_device,
- uint32_t time,
- uint32_t axis,
- int32_t value);
- static void inputHandleKey(void *data,
- struct wl_input_device *input_device,
+ static const struct wl_seat_listener seatListener;
+
+ static void seat_capabilities(void *data,
+ struct wl_seat *seat,
+ uint32_t caps);
+
+ static const struct wl_pointer_listener pointerListener;
+
+ static void pointer_enter(void *data,
+ struct wl_pointer *pointer,
+ uint32_t time, struct wl_surface *surface,
+ wl_fixed_t sx, wl_fixed_t sy);
+ static void pointer_leave(void *data,
+ struct wl_pointer *pointer,
+ uint32_t time, struct wl_surface *surface);
+ static void pointer_motion(void *data,
+ struct wl_pointer *pointer,
+ uint32_t time,
+ wl_fixed_t sx, wl_fixed_t sy);
+ static void pointer_button(void *data,
+ struct wl_pointer *pointer,
uint32_t serial, uint32_t time,
- uint32_t key, uint32_t state);
- static void inputHandlePointerEnter(void *data,
- struct wl_input_device *input_device,
- uint32_t time, struct wl_surface *surface,
- wl_fixed_t sx, wl_fixed_t sy);
- static void inputHandlePointerLeave(void *data,
- struct wl_input_device *input_device,
- uint32_t time, struct wl_surface *surface);
- static void inputHandleKeyboardEnter(void *data,
- struct wl_input_device *input_device,
- uint32_t time,
- struct wl_surface *surface,
- struct wl_array *keys);
- static void inputHandleKeyboardLeave(void *data,
- struct wl_input_device *input_device,
- uint32_t time,
- struct wl_surface *surface);
- static void inputHandleTouchDown(void *data,
- struct wl_input_device *wl_input_device,
- uint32_t serial,
- uint32_t time,
- struct wl_surface *surface,
- int32_t id,
- wl_fixed_t x,
- wl_fixed_t y);
- static void inputHandleTouchUp(void *data,
- struct wl_input_device *wl_input_device,
- uint32_t serial,
- uint32_t time,
- int32_t id);
- static void inputHandleTouchMotion(void *data,
- struct wl_input_device *wl_input_device,
- uint32_t time,
- int32_t id,
- wl_fixed_t x,
- wl_fixed_t y);
- static void inputHandleTouchFrame(void *data,
- struct wl_input_device *wl_input_device);
- static void inputHandleTouchCancel(void *data,
- struct wl_input_device *wl_input_device);
+ uint32_t button, uint32_t state);
+ static void pointer_axis(void *data,
+ struct wl_pointer *pointer,
+ uint32_t time,
+ uint32_t axis,
+ int32_t value);
+
+ static const struct wl_keyboard_listener keyboardListener;
+
+ static void keyboard_enter(void *data,
+ struct wl_keyboard *keyboard,
+ uint32_t time,
+ struct wl_surface *surface,
+ struct wl_array *keys);
+ static void keyboard_leave(void *data,
+ struct wl_keyboard *keyboard,
+ uint32_t time,
+ struct wl_surface *surface);
+ static void keyboard_key(void *data,
+ struct wl_keyboard *keyboard,
+ uint32_t serial, uint32_t time,
+ uint32_t key, uint32_t state);
+
+ static const struct wl_touch_listener touchListener;
+
+ static void touch_down(void *data,
+ struct wl_touch *touch,
+ uint32_t serial,
+ uint32_t time,
+ struct wl_surface *surface,
+ int32_t id,
+ wl_fixed_t x,
+ wl_fixed_t y);
+ static void touch_up(void *data,
+ struct wl_touch *touch,
+ uint32_t serial,
+ uint32_t time,
+ int32_t id);
+ static void touch_motion(void *data,
+ struct wl_touch *touch,
+ uint32_t time,
+ int32_t id,
+ wl_fixed_t x,
+ wl_fixed_t y);
+ static void touch_frame(void *data,
+ struct wl_touch *touch);
+ static void touch_cancel(void *data,
+ struct wl_touch *touch);
void handleTouchPoint(int id, double x, double y, Qt::TouchPointState state);
void handleTouchFrame();