Call a input_set_default_property() in evdev_device_create if this function is exist
authorJengHyun Kang <jhyuni.kang@samsung.com>
Tue, 12 Jul 2016 08:52:27 +0000 (17:52 +0900)
committerJengHyun Kang <jhyuni.kang@samsung.com>
Tue, 24 Oct 2017 07:04:33 +0000 (16:04 +0900)
Change-Id: Ib47c6115248204d9ff63ced802c557b1bf5ad5f5

configure.ac
src/evdev.c

index 7ee2584a2ed58f7a3623624c48345c39845602a6..8eb3a1e9467db284bc240851d9a54139d484d270 100644 (file)
@@ -63,9 +63,8 @@ AC_CHECK_DECL(static_assert, [],
 
 PKG_PROG_PKG_CONFIG()
 PKG_CHECK_MODULES(MTDEV, [mtdev >= 1.1.0])
-PKG_CHECK_MODULES(LIBUDEV, [libudev])
+PKG_CHECK_MODULES(LIBUDEV, [libudev], [HAVE_UDEV="yes"], [HAVE_UDEV="no"])
 PKG_CHECK_MODULES(LIBEVDEV, [libevdev >= 1.3])
-
 AC_CHECK_LIB([m], [atan2])
 AC_CHECK_LIB([rt], [clock_gettime])
 
@@ -256,6 +255,20 @@ if test "x$have_ttrace" = "xyes"; then
        AC_DEFINE(ENABLE_TTRACE, 1, [ttrace available])
 fi
 
+#######################
+# check for udev property #
+#######################
+if test "x$HAVE_UDEV" = "xyes"; then
+       AC_SEARCH_LIBS([input_set_default_property], [udev],
+               [have_udev_property="yes"],
+               [have_udev_property="no"])
+
+       if test "x$have_udev_property" = "xyes"; then
+               AC_DEFINE(HAVE_INPUT_SET_DEFAULT_PROPERTY, 1,
+                       [have input_set_default_property function])
+       fi
+fi
+
 AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
 AM_CONDITIONAL(BUILD_TESTS, [test "x$build_tests" = "xyes"])
 AM_CONDITIONAL(RUN_TESTS, [test "x$run_tests" = "xyes"])
index 4190122b023b22b33a4ff83a7db8691e26279a7a..7972bb2972ce6ff15526a4cbec4d65fa4ff26ded 100644 (file)
@@ -3064,6 +3064,12 @@ evdev_device_create(struct libinput_seat *seat,
        const char *sysname = udev_device_get_sysname(udev_device);
        char buf[STRERR_BUFSIZE] = {0, };
 
+#ifdef HAVE_INPUT_SET_DEFAULT_PROPERTY
+       if (input_set_default_property(udev_device) < 0)
+               return NULL;
+#endif
+       devnode = udev_device_get_devnode(udev_device);
+
        /* Use non-blocking mode so that we can loop on read on
         * evdev_device_data() until all events on the fd are
         * read.  mtdev_get() also expects this. */