[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