mirror of
https://github.com/AuxXxilium/eudev.git
synced 2025-01-26 17:09:26 +07:00
extras/input_id: Correctly identify touchpads
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.
This commit is contained in:
parent
6722e19ab1
commit
e0ead3ba82
@ -75,13 +75,10 @@ static void test_pointers (const unsigned long* bitmask_abs, const unsigned long
|
||||
int is_mouse = 0;
|
||||
int is_touchpad = 0;
|
||||
|
||||
if (test_bit (ABS_PRESSURE, bitmask_abs))
|
||||
is_touchpad = 1;
|
||||
|
||||
if (test_bit (ABS_X, bitmask_abs) && test_bit (ABS_Y, bitmask_abs)) {
|
||||
if (test_bit (BTN_STYLUS, bitmask_key))
|
||||
if (test_bit (BTN_STYLUS, bitmask_key) || test_bit (BTN_TOOL_PEN, bitmask_key))
|
||||
puts("ID_INPUT_TABLET=1");
|
||||
else if (test_bit (BTN_TOUCH, bitmask_key))
|
||||
else if (test_bit (BTN_TOOL_FINGER, bitmask_key) && !test_bit (BTN_TOOL_PEN, bitmask_key))
|
||||
is_touchpad = 1;
|
||||
else if (test_bit (BTN_TRIGGER, bitmask_key) ||
|
||||
test_bit (BTN_A, bitmask_key) ||
|
||||
|
Loading…
Reference in New Issue
Block a user