summaryrefslogtreecommitdiffstats
path: root/sway/input/input-manager.c
diff options
context:
space:
mode:
authorLibravatar Thiago Mendes <thiago@posteo.de>2018-10-10 23:15:31 +0200
committerLibravatar Thiago Mendes <thiago@posteo.de>2018-10-10 23:15:31 +0200
commit8e147b3f1d579fbe18ec80a851a699ed7927e410 (patch)
tree2eb8331b33caab9266fe436a5b6a33c8d7a5c1e9 /sway/input/input-manager.c
parentMerge pull request #2806 from v-gu/add-libinput-support-for-keyboard (diff)
downloadsway-8e147b3f1d579fbe18ec80a851a699ed7927e410.tar.gz
sway-8e147b3f1d579fbe18ec80a851a699ed7927e410.tar.zst
sway-8e147b3f1d579fbe18ec80a851a699ed7927e410.zip
Add libinput send_events config for touch
Diffstat (limited to 'sway/input/input-manager.c')
-rw-r--r--sway/input/input-manager.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/sway/input/input-manager.c b/sway/input/input-manager.c
index 3c7b74d2..70c2abf7 100644
--- a/sway/input/input-manager.c
+++ b/sway/input/input-manager.c
@@ -116,6 +116,28 @@ static void input_manager_libinput_config_keyboard(
116 } 116 }
117} 117}
118 118
119static void input_manager_libinput_config_touch(
120 struct sway_input_device *input_device) {
121 struct wlr_input_device *wlr_device = input_device->wlr_device;
122 struct input_config *ic = input_device_get_config(input_device);
123 struct libinput_device *libinput_device;
124
125 if (!ic || !wlr_input_device_is_libinput(wlr_device)) {
126 return;
127 }
128
129 libinput_device = wlr_libinput_get_device_handle(wlr_device);
130 wlr_log(WLR_DEBUG, "input_manager_libinput_config_touch(%s)",
131 ic->identifier);
132
133 if (ic->send_events != INT_MIN) {
134 wlr_log(WLR_DEBUG, "libinput_config_touch(%s) send_events_set_mode(%d)",
135 ic->identifier, ic->send_events);
136 libinput_device_config_send_events_set_mode(libinput_device,
137 ic->send_events);
138 }
139}
140
119static void input_manager_libinput_config_pointer( 141static void input_manager_libinput_config_pointer(
120 struct sway_input_device *input_device) { 142 struct sway_input_device *input_device) {
121 struct wlr_input_device *wlr_device = input_device->wlr_device; 143 struct wlr_input_device *wlr_device = input_device->wlr_device;
@@ -267,6 +289,8 @@ static void handle_new_input(struct wl_listener *listener, void *data) {
267 input_manager_libinput_config_pointer(input_device); 289 input_manager_libinput_config_pointer(input_device);
268 } else if (input_device->wlr_device->type == WLR_INPUT_DEVICE_KEYBOARD) { 290 } else if (input_device->wlr_device->type == WLR_INPUT_DEVICE_KEYBOARD) {
269 input_manager_libinput_config_keyboard(input_device); 291 input_manager_libinput_config_keyboard(input_device);
292 } else if (input_device->wlr_device->type == WLR_INPUT_DEVICE_TOUCH) {
293 input_manager_libinput_config_touch(input_device);
270 } 294 }
271 295
272 wl_signal_add(&device->events.destroy, &input_device->device_destroy); 296 wl_signal_add(&device->events.destroy, &input_device->device_destroy);
@@ -430,6 +454,8 @@ void input_manager_apply_input_config(struct sway_input_manager *input,
430 input_manager_libinput_config_pointer(input_device); 454 input_manager_libinput_config_pointer(input_device);
431 } else if (input_device->wlr_device->type == WLR_INPUT_DEVICE_KEYBOARD) { 455 } else if (input_device->wlr_device->type == WLR_INPUT_DEVICE_KEYBOARD) {
432 input_manager_libinput_config_keyboard(input_device); 456 input_manager_libinput_config_keyboard(input_device);
457 } else if (input_device->wlr_device->type == WLR_INPUT_DEVICE_TOUCH) {
458 input_manager_libinput_config_touch(input_device);
433 } 459 }
434 460
435 struct sway_seat *seat = NULL; 461 struct sway_seat *seat = NULL;