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 <peter.hutterer@who-t.net>
Tested-by: Vasily Khoruzhick <anarsoul@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit c781ef2eb3)
This commit is contained in:
Peter Hutterer 2016-06-09 08:44:30 +10:00
parent f9207606aa
commit d9c8da9da6

View file

@ -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),