[PATCH v2 libinput 1/5] tablet: move the libwacom check for left-handed-ness into a helper function
Carlos Garnacho
carlosg at gnome.org
Fri Apr 15 11:00:25 UTC 2016
Hey!,
On Mon, Apr 11, 2016 at 5:15 AM, Peter Hutterer
<peter.hutterer at who-t.net> wrote:
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> Changes since v1:
> - new in this version
>
> src/evdev-tablet.c | 38 +-------------------------------------
> src/evdev.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> src/evdev.h | 3 +++
> 3 files changed, 56 insertions(+), 37 deletions(-)
>
> diff --git a/src/evdev-tablet.c b/src/evdev-tablet.c
> index 9a1ac52..3c3ebcf 100644
> --- a/src/evdev-tablet.c
> +++ b/src/evdev-tablet.c
> @@ -1571,45 +1571,9 @@ tablet_init_accel(struct tablet_dispatch *tablet, struct evdev_device *device)
> static void
> tablet_init_left_handed(struct evdev_device *device)
> {
> -#if HAVE_LIBWACOM
> - struct libinput *libinput = device->base.seat->libinput;
> - WacomDeviceDatabase *db;
> - WacomDevice *d = NULL;
> - WacomError *error;
> - const char *devnode;
> -
> - db = libwacom_database_new();
> - if (!db) {
> - log_info(libinput,
> - "Failed to initialize libwacom context.\n");
> - return;
> - }
> - error = libwacom_error_new();
> - devnode = udev_device_get_devnode(device->udev_device);
> -
> - d = libwacom_new_from_path(db,
> - devnode,
> - WFALLBACK_NONE,
> - error);
> -
> - if (d) {
> - if (libwacom_is_reversible(d))
> + if (evdev_tablet_has_left_handed(device))
> evdev_init_left_handed(device,
> tablet_change_to_left_handed);
> - } else if (libwacom_error_get_code(error) == WERROR_UNKNOWN_MODEL) {
> - log_info(libinput, "Tablet unknown to libwacom\n");
> - } else {
> - log_error(libinput,
> - "libwacom error: %s\n",
> - libwacom_error_get_message(error));
> - }
> -
> - if (error)
> - libwacom_error_free(&error);
> - if (d)
> - libwacom_destroy(d);
> - libwacom_database_destroy(db);
> -#endif
> }
>
> static int
> diff --git a/src/evdev.c b/src/evdev.c
> index 6bb8986..a5511c5 100644
> --- a/src/evdev.c
> +++ b/src/evdev.c
> @@ -43,6 +43,10 @@
> #include "filter.h"
> #include "libinput-private.h"
>
> +#if HAVE_LIBWACOM
> +#include <libwacom/libwacom.h>
> +#endif
> +
> #define DEFAULT_WHEEL_CLICK_ANGLE 15
> #define DEFAULT_MIDDLE_BUTTON_SCROLL_TIMEOUT ms2us(200)
>
> @@ -2858,3 +2862,51 @@ evdev_device_destroy(struct evdev_device *device)
> free(device->mt.slots);
> free(device);
> }
> +
> +bool
> +evdev_tablet_has_left_handed(struct evdev_device *device)
> +{
> +#if HAVE_LIBWACOM
> + struct libinput *libinput = device->base.seat->libinput;
> + WacomDeviceDatabase *db;
> + WacomDevice *d = NULL;
> + WacomError *error;
> + const char *devnode;
> + bool has_left_handed = false;
> +
> + db = libwacom_database_new();
> + if (!db) {
> + log_info(libinput,
> + "Failed to initialize libwacom context.\n");
> + goto out;
> + }
> +
> + error = libwacom_error_new();
> + devnode = udev_device_get_devnode(device->udev_device);
> +
> + d = libwacom_new_from_path(db,
> + devnode,
> + WFALLBACK_NONE,
> + error);
> +
> + if (d) {
> + if (libwacom_is_reversible(d))
> + has_left_handed = true;
> + } else if (libwacom_error_get_code(error) == WERROR_UNKNOWN_MODEL) {
> + log_info(libinput, "Tablet unknown to libwacom\n");
> + } else {
> + log_error(libinput,
> + "libwacom error: %s\n",
> + libwacom_error_get_message(error));
> + }
> +
> + if (error)
> + libwacom_error_free(&error);
> + if (d)
> + libwacom_destroy(d);
> + libwacom_database_destroy(db);
> +
> +out:
> + return has_left_handed;
> +#endif
> +}
This function should have a return value (I guess false is safe?) if
HAVE_LIBWACOM is not defined.
Cheers,
Carlos
More information about the wayland-devel
mailing list