Age | Commit message (Collapse) | Author |
|
|
|
|
|
We previously only tested the "key" capabilities for keys between 0 and 255 to
determine ID_INPUT_KEY. If there are none, also check for keys in the upper
block (KEY_OK/0x160 to KEY_TOUCHPAD_OFF/0x214).
|
|
Joey Lee <jlee@novell.com> reported a problem on an MSI laptop which reports a
too long capabilities/key:
E: EV==3
E: KEY==180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This is longer than KEY_MAX and thus caused a memory overflow. Guard against
this now and just ignore the excess blocks.
|
|
If $DEBUG is set, output the capability bitmaps to stderr.
|
|
|
|
|
|
Add detection of touchscreens to the input-id utility.
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
|
|
Before we bless an input device as a mouse, verify that it has a left button
(BTN_MOUSE).
Thanks to Dmitry Torokhov <dtor@mail.ru> for pointing out!
|
|
Check the capabilities/ev for the particular event class before testing bits in
that event class. This avoids testing potentially bogus data if the device does
not support that class of events at all.
Thanks to Dmitry Torokhov for pointing out!
|
|
In the parent traversal loop, use
udev_device_get_parent_with_subsystem_devtype() to only grab "input" class
devices.
|
|
Current rules only call it for input devices, but let's be correct.
|
|
When being called on a device which is not in the "input" subsystem, or doesn't
have an "input" parent, it got stuck in an endless loop. Unfortunately this
includes the virtual/input/mice multiplexer, which exposes this bug on just
about every system.
|
|
Now use libudev to clean up hardcoded /sys/ and /device/ paths, and to also
support direct input device arguments. Now both "input4" and "event4" will
work.
|
|
BTN_TOUCH (as well as ABS_PRESSURE) is used not only by touchpads but
by touchscreens as well. The proper check for a touchpad is presence
of BTN_TOOL_FINGER and absence of BTN_TOOL_PEN (the latter to filter
out some tablets that use BTN_TOOL_FINGER).
Tablet matching should be on either BTN_TOOL_PEN or BTN_STYLUS.
|
|
input_id probes input/event devices for their class (keyboard, keys, mouse,
touchpad, tablet, joystick). This is based on the corresponding hal code in
hald/linux/device.c, input_test_{abs,rel,...}.
This should provide enough functionality to get hal-less X.org working (which
in particular needs to know exactly which devices are touchpads).
Replace the brittle hacks in 60-persistent-input.rules with checking for the
new ID_INPUT_* flags. This keeps the old ID_CLASS properties for now (but they
are to be removed later on).
Note: The current code has several hacks still, which are to be replaced with
proper libudev calls later on.
|