libinput: Add tap configuration to weston.ini
authorJonas Ådahl <jadahl@gmail.com>
Tue, 22 Jul 2014 20:49:41 +0000 (22:49 +0200)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Fri, 15 Aug 2014 12:33:55 +0000 (15:33 +0300)
Enable by adding the following to your weston.ini:

[libinput]
enable_tap=true

This also makes weston require libinput >= 0.5.0.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
configure.ac
src/libinput-device.c
weston.ini.in

index 1938078..354db14 100644 (file)
@@ -160,7 +160,7 @@ AC_ARG_ENABLE(libinput-backend, [  --enable-libinput-backend],,
 AM_CONDITIONAL([ENABLE_LIBINPUT_BACKEND], [test x$enable_libinput_backend = xyes])
 if test x$enable_libinput_backend = xyes; then
   AC_DEFINE([BUILD_LIBINPUT_BACKEND], [1], [Build the libinput input device backend])
-  PKG_CHECK_MODULES(LIBINPUT_BACKEND, [libinput >= 0.4.0])
+  PKG_CHECK_MODULES(LIBINPUT_BACKEND, [libinput >= 0.5.0])
 fi
 
 
index 2ba4ec3..6e50eeb 100644 (file)
@@ -297,6 +297,29 @@ evdev_device_set_output(struct evdev_device *device,
                      &device->output_destroy_listener);
 }
 
+static void
+configure_device(struct evdev_device *device)
+{
+       struct weston_compositor *compositor = device->seat->compositor;
+       struct weston_config_section *s;
+       int enable_tap;
+       int enable_tap_default;
+
+       s = weston_config_get_section(compositor->config,
+                                     "libinput", NULL, NULL);
+
+       if (libinput_device_config_tap_get_finger_count(device->device) > 0) {
+               enable_tap_default =
+                       libinput_device_config_tap_get_default_enabled(
+                               device->device);
+               weston_config_section_get_bool(s, "enable_tap",
+                                              &enable_tap,
+                                              enable_tap_default);
+               libinput_device_config_tap_set_enabled(device->device,
+                                                      enable_tap);
+       }
+}
+
 struct evdev_device *
 evdev_device_create(struct libinput_device *libinput_device,
                    struct weston_seat *seat)
@@ -330,6 +353,8 @@ evdev_device_create(struct libinput_device *libinput_device,
        libinput_device_set_user_data(libinput_device, device);
        libinput_device_ref(libinput_device);
 
+       configure_device(device);
+
        return device;
 }
 
index 03fbde2..4fca0bb 100644 (file)
@@ -61,6 +61,9 @@ path=@libexecdir@/weston-keyboard
 #mode=1024x768
 #transform=flipped-90
 
+#[libinput]
+#enable_tap=true
+
 #[touchpad]
 #constant_accel_factor = 50
 #min_accel_factor = 0.16