[systemd-devel] [PATCH v5 3/3] udev: input_id - use ABS_MT_SLOT{-1} to exclude non touch screen devices

Peter Hutterer peter.hutterer at who-t.net
Mon Jun 1 23:47:40 PDT 2015


On Mon, Jun 01, 2015 at 10:43:39PM +0200, Andreas Pokorny wrote:
> Peek at the ABS_MT_SLOT-1 axis. Expect that touch screens only
> have axes inside the MT range.
> ---
>  src/udev/udev-builtin-input_id.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/src/udev/udev-builtin-input_id.c b/src/udev/udev-builtin-input_id.c
> index 0f9f021..7fa7d1a 100644
> --- a/src/udev/udev-builtin-input_id.c
> +++ b/src/udev/udev-builtin-input_id.c
> @@ -171,6 +171,10 @@ static bool test_pointers(struct udev_device *dev,
>          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);
> +
> +        /* unset has_mt_coordinates if devices claims to have all abs axis */
> +        if(has_mt_coordinates && test_bit(ABS_MT_SLOT, bitmask_abs) && test_bit(ABS_MT_SLOT - 1, bitmask_abs))
> +                has_mt_coordinates = false;
>          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
 
merged, thanks.

Cheers,
   Peter


More information about the systemd-devel mailing list