119 lines
4.6 KiB
Diff
119 lines
4.6 KiB
Diff
From 3cd9a70fea1ccf795419a1726c7c279b0aaf237e Mon Sep 17 00:00:00 2001
|
|
From: Rui Matos <tiagomatos@gmail.com>
|
|
Date: Tue, 19 Nov 2013 16:02:58 +0000
|
|
Subject: device-manager-evdev: Stop using deprecated libevdev API
|
|
|
|
Fixes compiler warnings with libevdev >= 0.4 and makes use of a new
|
|
function to set the clock id instead of doing the ioctl directly.
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=712816
|
|
---
|
|
diff --git a/README.in b/README.in
|
|
index 0018869..0e73a42 100644
|
|
--- a/README.in
|
|
+++ b/README.in
|
|
@@ -40,7 +40,7 @@ When building the CEx100 backend, Clutter also depends on:
|
|
When building the evdev input backend, Clutter also depends on:
|
|
|
|
• xkbcommon
|
|
- • libevdev
|
|
+ • libevdev ≥ @LIBEVDEV_REQ_VERSION@
|
|
|
|
If you are building the API reference you will also need:
|
|
|
|
diff --git a/clutter/evdev/clutter-device-manager-evdev.c b/clutter/evdev/clutter-device-manager-evdev.c
|
|
index 38d707f..bc34c39 100644
|
|
--- a/clutter/evdev/clutter-device-manager-evdev.c
|
|
+++ b/clutter/evdev/clutter-device-manager-evdev.c
|
|
@@ -605,11 +605,11 @@ sync_source (ClutterEventSource *source)
|
|
const gchar *device_path;
|
|
|
|
/* We read a SYN_DROPPED, ignore it and sync the device */
|
|
- err = libevdev_next_event (source->dev, LIBEVDEV_READ_SYNC, &ev);
|
|
+ err = libevdev_next_event (source->dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
|
|
while (err == 1)
|
|
{
|
|
dispatch_one_event (source, &ev);
|
|
- err = libevdev_next_event (source->dev, LIBEVDEV_READ_SYNC, &ev);
|
|
+ err = libevdev_next_event (source->dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
|
|
}
|
|
|
|
if (err != -EAGAIN && CLUTTER_HAS_DEBUG (EVENT))
|
|
@@ -664,7 +664,7 @@ clutter_event_dispatch (GSource *g_source,
|
|
if (clutter_events_pending ())
|
|
goto queue_event;
|
|
|
|
- err = libevdev_next_event (source->dev, LIBEVDEV_READ_NORMAL, &ev);
|
|
+ err = libevdev_next_event (source->dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
|
|
while (err != -EAGAIN)
|
|
{
|
|
if (err == 1)
|
|
@@ -677,7 +677,7 @@ clutter_event_dispatch (GSource *g_source,
|
|
goto out;
|
|
}
|
|
|
|
- err = libevdev_next_event (source->dev, LIBEVDEV_READ_NORMAL, &ev);
|
|
+ err = libevdev_next_event (source->dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
|
|
}
|
|
|
|
queue_event:
|
|
@@ -725,7 +725,7 @@ clutter_event_source_new (ClutterInputDeviceEvdev *input_device)
|
|
GSource *source = g_source_new (&event_funcs, sizeof (ClutterEventSource));
|
|
ClutterEventSource *event_source = (ClutterEventSource *) source;
|
|
const gchar *node_path;
|
|
- gint fd, clkid;
|
|
+ gint fd;
|
|
GError *error;
|
|
ClutterInputDeviceType device_type;
|
|
|
|
@@ -756,15 +756,13 @@ clutter_event_source_new (ClutterInputDeviceEvdev *input_device)
|
|
}
|
|
}
|
|
|
|
- /* Tell evdev to use the monotonic clock for its timestamps */
|
|
- clkid = CLOCK_MONOTONIC;
|
|
- ioctl (fd, EVIOCSCLOCKID, &clkid);
|
|
-
|
|
/* setup the source */
|
|
event_source->device = input_device;
|
|
event_source->event_poll_fd.fd = fd;
|
|
event_source->event_poll_fd.events = G_IO_IN;
|
|
+
|
|
libevdev_new_from_fd (fd, &event_source->dev);
|
|
+ libevdev_set_clock_id (event_source->dev, CLOCK_MONOTONIC);
|
|
|
|
device_type = clutter_input_device_get_device_type (CLUTTER_INPUT_DEVICE (input_device));
|
|
if (device_type == CLUTTER_TOUCHPAD_DEVICE)
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 0448ee4..47fce79 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -146,6 +146,7 @@ m4_define([uprof_req_version], [0.3])
|
|
m4_define([xfixes_req_version], [3])
|
|
m4_define([xcomposite_req_version], [0.4])
|
|
m4_define([gdk_req_version], [3.3.18])
|
|
+m4_define([libevdev_req_version], [0.4])
|
|
|
|
AC_SUBST([GLIB_REQ_VERSION], [glib_req_version])
|
|
AC_SUBST([COGL_REQ_VERSION], [cogl_req_version])
|
|
@@ -158,6 +159,7 @@ AC_SUBST([UPROF_REQ_VERSION], [uprof_req_version])
|
|
AC_SUBST([XFIXES_REQ_VERSION], [xfixes_req_version])
|
|
AC_SUBST([XCOMPOSITE_REQ_VERSION], [xcomposite_req_version])
|
|
AC_SUBST([GDK_REQ_VERSION], [gdk_req_version])
|
|
+AC_SUBST([LIBEVDEV_REQ_VERSION], [libevdev_req_version])
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AM_PATH_GLIB_2_0([glib_req_version],
|
|
@@ -478,7 +480,7 @@ AS_IF([test "x$enable_evdev" = "xyes"],
|
|
AS_IF([test "x$have_evdev" = "xyes"],
|
|
[
|
|
CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS evdev"
|
|
- BACKEND_PC_FILES="$BACKEND_PC_FILES gudev-1.0 libevdev xkbcommon"
|
|
+ BACKEND_PC_FILES="$BACKEND_PC_FILES gudev-1.0 libevdev >= $LIBEVDEV_REQ_VERSION xkbcommon"
|
|
experimental_input_backend="yes"
|
|
AC_DEFINE([HAVE_EVDEV], [1], [Have evdev support for input handling])
|
|
SUPPORT_EVDEV=1
|
|
--
|
|
cgit v0.9.2
|
|
|