diff options
author | emersion <contact@emersion.fr> | 2018-10-10 23:52:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-10 23:52:29 +0200 |
commit | 8dadfd42dff1531f793ad2f2c237a05c05f6d180 (patch) | |
tree | 2eb8331b33caab9266fe436a5b6a33c8d7a5c1e9 | |
parent | Merge pull request #2806 from v-gu/add-libinput-support-for-keyboard (diff) | |
parent | Add libinput send_events config for touch (diff) | |
download | sway-8dadfd42dff1531f793ad2f2c237a05c05f6d180.tar.gz sway-8dadfd42dff1531f793ad2f2c237a05c05f6d180.tar.zst sway-8dadfd42dff1531f793ad2f2c237a05c05f6d180.zip |
Merge pull request #2817 from trmendes/libinput-disable-touchscreen-support
Add libinput send_events config for touch
-rw-r--r-- | sway/input/input-manager.c | 26 |
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 | ||
119 | static 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 | |||
119 | static void input_manager_libinput_config_pointer( | 141 | static 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; |