mac-precision-touchpad
mac-precision-touchpad copied to clipboard
Inclusion of Pressure Report at 0D:30
Pre-report checks
- [ YES ] Have you checked (use search) Azure DevOps Board and Github issues for known bugs and plans?
Is your feature request related to a problem? Please describe. I am using a Magic Trackpad2 as a pressure sensitive Multi-Touch device, and need the touch values for drag&drop operations with multiple fingers. Default Windows Gestures are not sufficient for my needs, in fact I disabled almost all of them in Windows' settings so they don't interfere with my application.
Describe the solution you'd like Your code handles pressure fine internally, but unfortunately it doesn't forward them.
It would be great if RawInputDevice reports could make pressure data available, for each contact. I am getting solid data for X, Y, ID and even touch release, but pressure is missing.
I found info that Digitizers such as Pen and Touchscreen have an optional field called Pressure
at 0D:30
. I think that would be the most straightforward solution.
Of course, any other solution that enables me to get touch data with pressure values is also fine.
Describe alternatives you've considered I tried utilising the mouse reports, that have been synthesised by the driver, but their button data is not sufficient:
- reliable Left Clicks will only happen if there was no more than a single contact prior
- Taps will only register as mouse buttons when there was no prior contact at all (which would help, Windows allows forwarding Taps to Right Click and/or Middle Click
- There are some comments in the code about forwarding raw touch data, and defuzzing. But not sure how that relates to my question
Additional context
Precision Touchpads seem to have no optional 0D:30
Pressure
field (I assume because pressure is being tightly regulated by hardware design guidelines and that field would have little practical value for regular Touchpads certified by MS).
I am using RawInput-Sharp to retrieve data. It is handling touchscreens, touchpads and pens all the same, and fails gracefully if a field is not available.