terminal: parse ID_SEAT not only for parents but the device itself
When deciding what seat a device is on, we have to traverse all parents to find one with an ID_SEAT tag, otherwise, input devices plugged on a seated USB-hub are not automatically attached to the right seat. But any tags on the main device still overwrite the tags of the childs, so fix our logic to check the device itself first, before traversing the parents.
This commit is contained in:
@@ -893,11 +893,11 @@ static int context_ud_hotplug(sysview_context *c, struct udev_device *d) {
|
||||
|
||||
p = d;
|
||||
seatname = NULL;
|
||||
while ((p = udev_device_get_parent(p))) {
|
||||
do {
|
||||
seatname = udev_device_get_property_value(p, "ID_SEAT");
|
||||
if (seatname)
|
||||
break;
|
||||
}
|
||||
} while ((p = udev_device_get_parent(p)));
|
||||
|
||||
seat = sysview_find_seat(c, seatname ? : "seat0");
|
||||
if (!seat)
|
||||
|
||||
Reference in New Issue
Block a user