aboutsummaryrefslogtreecommitdiff
path: root/backend/libinput/backend.c
diff options
context:
space:
mode:
authorSimon Zeni <simon@bl4ckb0ne.ca>2022-02-23 10:42:20 -0500
committerKirill Primak <vyivel@eclair.cafe>2022-03-02 18:18:05 +0000
commit5eefda1ffe16bdacd3445259937cfed119409e22 (patch)
tree9ad304cde4f723f1dc914c5447df01b1dd05e830 /backend/libinput/backend.c
parent9dd6e2b90521fd438c90837c646a1fb4092bfe1b (diff)
backend/libinput: rework keyboard interface
The wlr_libinput_input_device now owns its wlr_keyboard, instead of creating a new wlr_libinput_input_device for it.
Diffstat (limited to 'backend/libinput/backend.c')
-rw-r--r--backend/libinput/backend.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/backend/libinput/backend.c b/backend/libinput/backend.c
index 50726ec5..bdc36591 100644
--- a/backend/libinput/backend.c
+++ b/backend/libinput/backend.c
@@ -238,8 +238,16 @@ struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display,
struct libinput_device *wlr_libinput_get_device_handle(
struct wlr_input_device *wlr_dev) {
- struct wlr_libinput_input_device *dev =
- (struct wlr_libinput_input_device *)wlr_dev;
+ struct wlr_libinput_input_device *dev = NULL;
+ switch (wlr_dev->type) {
+ case WLR_INPUT_DEVICE_KEYBOARD:
+ dev = device_from_keyboard(wlr_dev->keyboard);
+ break;
+ default:
+ dev = (struct wlr_libinput_input_device *)wlr_dev;
+ break;
+ }
+
return dev->handle;
}