@@ -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
141
static void input_manager_libinput_config_pointer (
120
142
struct sway_input_device * input_device ) {
121
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
289
input_manager_libinput_config_pointer (input_device );
268
290
} else if (input_device -> wlr_device -> type == WLR_INPUT_DEVICE_KEYBOARD ) {
269
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
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
454
input_manager_libinput_config_pointer (input_device );
431
455
} else if (input_device -> wlr_device -> type == WLR_INPUT_DEVICE_KEYBOARD ) {
432
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
461
struct sway_seat * seat = NULL ;
0 commit comments