quoted
So the (touch_max > 1) logic replaces the branching on features and device
type?
There are only two types of devices defined for features->device_type:
BTN_TOOL_PEN and BTN_TOOL_FINGER.
Once we come to !BTN_TOOL_PEN, we are dealing with touch devices.
The first if-statement assigns ABS_X/Y for number of contacts less or
equal to 2. So, it is single and 2 finger touch devices. 2 finger
touch devices are processed here since they will not use the new
input_mt_init_slots call, which does not offer benefit to the devices.
input_mt_init_slots() will take care of ABS_X/Y assignment when flags
are not zero. All touch devices with more than two contacts will use
the new input_mt_init_slots call with non-zero flags.
The second if-statement is for all MT devices, which include two
finger touch devices.
Great writeup - it could be worth using some of it in the commit
message. :-)
Thanks,
Henrik