On Fri, May 29, 2015 at 02:54:54PM +0200, Andreas Pokorny wrote: > Require touch screens to have a ABS_MT_SLOT axis while exclude devices > that overlap with the MT range of axes. > --- > src/udev/udev-builtin-input_id.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/src/udev/udev-builtin-input_id.c > b/src/udev/udev-builtin-input_id.c > index 0f9f021..59616c8 100644 > --- a/src/udev/udev-builtin-input_id.c > +++ b/src/udev/udev-builtin-input_id.c > @@ -170,7 +170,8 @@ static bool test_pointers(struct udev_device *dev, > finger_but_no_pen = test_bit(BTN_TOOL_FINGER, bitmask_key) && > !test_bit(BTN_TOOL_PEN, bitmask_key); > has_mouse_button = test_bit(BTN_LEFT, bitmask_key); > has_rel_coordinates = test_bit(EV_REL, bitmask_ev) && > test_bit(REL_X, bitmask_rel) && test_bit(REL_Y, bitmask_rel); > - has_mt_coordinates = test_bit(ABS_MT_POSITION_X, bitmask_abs) && > test_bit(ABS_MT_POSITION_Y, bitmask_abs); > + has_mt_coordinates = test_bit(ABS_MT_POSITION_X, bitmask_abs) && > test_bit(ABS_MT_POSITION_Y, bitmask_abs) && > + test_bit(ABS_MT_SLOT, bitmask_abs) && > !test_bit(ABS_MT_SLOT - 1, bitmask_abs);
there are still a few devices that use protocol A in the kernel, so slot missing is fine. you only want to unset this if we have slot set and slot-1 unset. i.e. if (has_mt_coords && ABS_MT_SLOT && !(ABS_MT_SLOT -1)) has_mt_coords = false; should do the trick. I've merged the other two patches, if you send me a revised one of this I'll push them in one lot. thanks Cheers, Peter > is_direct = test_bit(INPUT_PROP_DIRECT, bitmask_props); > has_touch = test_bit(BTN_TOUCH, bitmask_key); > /* joysticks don't necessarily have buttons; e. g. > -- > 2.1.4 > _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel