[PATCH xf86-input-libinput] Use xf86AddEnabledDevice instead of AddEnabledDevice when XI86_SIGNAL_IO
Keith Packard
keithp at keithp.com
Mon May 30 02:22:12 UTC 2016
This lets the xfree86 layer change to the NotifyFd interface without
affecting the driver.
Signed-off-by: Keith Packard <keithp at keithp.com>
---
configure.ac | 8 ++++++++
src/xf86libinput.c | 11 +++++++++++
2 files changed, 19 insertions(+)
diff --git a/configure.ac b/configure.ac
index 64886f6..fc6f025 100644
--- a/configure.ac
+++ b/configure.ac
@@ -63,6 +63,14 @@ AC_ARG_WITH(xorg-conf-dir,
[xorgconfdir="$prefix/share/X11/xorg.conf.d"])
AC_SUBST(xorgconfdir)
+save_CFLAGS="$CFLAGS"
+CFLAGS="$XORG_CFLAGS"
+AC_CHECK_DECL(AddEnabledDevice,
+ [AC_DEFINE(HAVE_ADD_ENABLED_DEVICE, 1, [Have old AddEnabledDevice API])],
+ [],
+ [#include "os.h"])
+CFLAGS="$save_CFLAGS"
+
# X Server SDK location is required to install header files
sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index 49f0583..478f7a4 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -522,8 +522,12 @@ xf86libinput_on(DeviceIntPtr dev)
pInfo->fd = libinput_get_fd(libinput);
if (driver_context.device_enabled_count == 0) {
+#if !HAVE_ADD_ENABLED_DEVICE
+ xf86AddEnabledDevice(pInfo);
+#else
/* Can't use xf86AddEnabledDevice on an epollfd */
AddEnabledDevice(pInfo->fd);
+#endif
}
driver_context.device_enabled_count++;
@@ -542,7 +546,11 @@ xf86libinput_off(DeviceIntPtr dev)
struct xf86libinput_device *shared_device = driver_data->shared_device;
if (--driver_context.device_enabled_count == 0) {
+#if !HAVE_ADD_ENABLED_DEVICE
+ xf86RemoveEnabledDevice(pInfo);
+#else
RemoveEnabledDevice(pInfo->fd);
+#endif
}
if (use_server_fd(pInfo)) {
@@ -2522,6 +2530,9 @@ xf86libinput_pre_init(InputDriverPtr drv,
pInfo->read_input = xf86libinput_read_input;
pInfo->control_proc = NULL;
pInfo->switch_mode = NULL;
+#ifdef XI86_SIGNAL_IO
+ pInfo->flags &= ~XI86_SIGNAL_IO;
+#endif
driver_data = calloc(1, sizeof(*driver_data));
if (!driver_data)
--
2.8.1
More information about the xorg-devel
mailing list