From d9c8da9da69a0271c13880605cb7e1127331a493 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 9 Jun 2016 08:44:30 +1000 Subject: [PATCH] evdev: check model flags for actual booleans The hwdb doesn't allow unsetting a property so once we start nesting model flags it'll become important to be able to be able to unset one as well (by assigning it to 0). So rather than checking for existence, check whether the property is actually set to something resembling a boolean. Signed-off-by: Peter Hutterer Tested-by: Vasily Khoruzhick Reviewed-by: Hans de Goede (cherry picked from commit c781ef2eb366154d651f00e9a6107eff609b2afb) --- src/evdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/evdev.c b/src/evdev.c index cd05cfc3..0241edf9 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1742,10 +1742,12 @@ evdev_read_model_flags(struct evdev_device *device) }; const struct model_map *m = model_map; uint32_t model_flags = 0; + const char *val; while (m->property) { - if (!!udev_device_get_property_value(device->udev_device, - m->property)) { + val = udev_device_get_property_value(device->udev_device, + m->property); + if (val && !streq(val, "0")) { log_debug(device->base.seat->libinput, "%s: tagged as %s\n", evdev_device_get_sysname(device),