gimp but for windows: a wayland compositor
git clone https://github.com/m-col/wimp
Files | Refs | Readme

Commit 8b90141e71e2e3b9b667339bdcd1b8b6ff3b7f30
Parent: 7be89bba103fcddcedbdf80f4a6117461f42867f
Author: mcol <mcol@posteo.net>
Date: 2021-02-11 19:09:09 +0000
Committer: mcol <mcol@posteo.net>
Committed: 2021-02-11 19:09:09 +0000

Enable tap-to-click for libinput devices

Closes #27

src/input.c Modified

@@ -1,6 +1,7 @@
 #include <inttypes.h>
 #include <unistd.h>
 #include <wayland-server-protocol.h>
+#include <wlr/backend/libinput.h>
 #include <wlr/types/wlr_keyboard.h>
 #include <wlr/types/wlr_data_device.h>
 #include <wlr/types/wlr_primary_selection_v1.h>
@@ -123,7 +124,18 @@
 }
 
 
-static void on_new_keyboard(struct wlr_input_device *device) {
+static void add_new_pointer(struct wlr_input_device *device) {
+    if (wlr_input_device_is_libinput(device)) {
+	struct libinput_device *ldev = wlr_libinput_get_device_handle(device);
+	if (libinput_device_config_tap_get_finger_count(ldev) > 1) {
+	    libinput_device_config_tap_set_enabled(ldev, LIBINPUT_CONFIG_TAP_ENABLED);
+	}
+    }
+    wlr_cursor_attach_input_device(wimp.cursor, device);
+}
+
+
+static void add_new_keyboard(struct wlr_input_device *device) {
     struct keyboard *keyboard = calloc(1, sizeof(struct keyboard));
     keyboard->device = device;
 
@@ -160,10 +172,10 @@
     struct wlr_input_device *device = data;
     switch (device->type) {
 	case WLR_INPUT_DEVICE_KEYBOARD:
-	    on_new_keyboard(device);
+	    add_new_keyboard(device);
 	    break;
 	case WLR_INPUT_DEVICE_POINTER:
-	    wlr_cursor_attach_input_device(wimp.cursor, device);
+	    add_new_pointer(device);
 	    break;
 	default:
 	    break;
@@ -179,7 +191,7 @@
 static void on_new_virtual_keyboard(struct wl_listener *listener, void *data) {
     struct wlr_virtual_keyboard_v1 *keyboard = data;
     struct wlr_input_device *device = &keyboard->input_device;
-    on_new_keyboard(device);
+    add_new_keyboard(device);
 }
 
 

Makefile Modified

@@ -5,6 +5,7 @@
 LDFLAGS	+= $(shell pkg-config --cflags --libs wlroots) \
 	    $(shell pkg-config --cflags --libs wayland-server) \
 	    $(shell pkg-config --cflags --libs xkbcommon) \
+	    $(shell pkg-config --cflags --libs libinput) \
 	    $(shell pkg-config --cflags --libs cairo) \
 	    $(shell pkg-config --cflags --libs pixman-1)