Skip to content

Commit 8dadfd4

Browse files
authored
Merge pull request #2817 from trmendes/libinput-disable-touchscreen-support
Add libinput send_events config for touch
2 parents 5d19906 + 8e147b3 commit 8dadfd4

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

sway/input/input-manager.c

+26
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,28 @@ static void input_manager_libinput_config_keyboard(
116116
}
117117
}
118118

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+
119141
static void input_manager_libinput_config_pointer(
120142
struct sway_input_device *input_device) {
121143
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) {
267289
input_manager_libinput_config_pointer(input_device);
268290
} else if (input_device->wlr_device->type == WLR_INPUT_DEVICE_KEYBOARD) {
269291
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);
270294
}
271295

272296
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,
430454
input_manager_libinput_config_pointer(input_device);
431455
} else if (input_device->wlr_device->type == WLR_INPUT_DEVICE_KEYBOARD) {
432456
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);
433459
}
434460

435461
struct sway_seat *seat = NULL;

0 commit comments

Comments
 (0)