Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Determine tipswitch value from pressure input #436

Merged

Conversation

b0undl3ss
Copy link

This update resolves the issue with hovering causing cursor jitter, unintended taps, etc.

I have only tested this out on x64 with a Magic Trackpad 2 with the User Mode Driver. If we could test out the other cases I think this would be ready to merge (unless the maintainers are confident with the changes made in this PR):

  1. Magic Trackpad 1 | User Mode, Kernel Mode
  2. Magic Trackpad 2 | Kernel Mode

@b0undl3ss
Copy link
Author

I should also mention that when I debugged the driver on my Magic Trackpad 2, the pressure value would always be 0 until my finger was just barely touching the trackpad. Any pressure value > 0 means that a finger is actually touching the trackpad so as long as it's not 0 TipSwitch should be set to 1.

Does anyone know if pressure value works the same on other trackpads as well? If so, it might even be unnecessary to make the Tip Switch value configurable. Allowing Tip Switch to equal 1 when pressure is greater than 0 would allow touches to register when a finger is hovering, is this something that people want?

I think confidence setting could still benefit from being user-configurable. For MT2 the current threshold of 345 works perfectly for me, but I think laptop users might need a smaller threshold for palm rejection to work properly.

@imbushuo
Copy link
Owner

Pressure input might still have ghost touch based on my prior knowledge, I will try this out this week and let you know how I feel with it. In long term, a sensitivity adjustment control is still required...

@lloydo3000
Copy link

Awesome efforts! From a user perspective, I'm not too fussed on needing adjustments. I'm more the type to be happy with whatever the default setting is (assuming it's a good setting 😄).

@imbushuo
Copy link
Owner

I will take a look and report back on Monday.

@funky-jojo
Copy link

@tritegeist Any possibilities to post your build anywhere for download? I'd love to take this for a spin.

@imbushuo
Copy link
Owner

imbushuo commented Oct 2, 2021

Okay finally got some time...

This feels good on Magic Trackpad 2. I will get this merged once I resolve a blocker issue in the INF.

@imbushuo imbushuo changed the base branch from master to l1-official/pressure October 2, 2021 10:22
@imbushuo imbushuo merged commit 133c629 into imbushuo:l1-official/pressure Oct 2, 2021
@imbushuo
Copy link
Owner

imbushuo commented Oct 2, 2021

I need to further validate if this works for other models. So far this is placed into a L1 branch, and if validated, will merge into main branch.

@imbushuo
Copy link
Owner

imbushuo commented Oct 2, 2021

Production signed build (note they are out-of-band build, not mainline release):

@funky-jojo
Copy link

funky-jojo commented Oct 2, 2021

Many thanks! I'm trying it out now, and the hover effect is eliminated for me on a Magic Trackpad 2 + Windows 10 ThinkPad. I'm going to start using it full-time and provide feedback on how it goes.
For reference, on my Magic Trackpad 2, my finger has to be in positive contact with the surface before cursor movement is registered. I can even lightly drag my finger across the surface without triggering any cursor movement, but I don't think it's enough to cause a problem.
Thank you again

@funky-jojo
Copy link

funky-jojo commented Oct 4, 2021

Update on this - I have been using the updated driver for couple of full days on Magic Trackpad 2 + Windows 10 ThinkPad, and, overall, it is definitely usable now. I have noticed only two (possibly related) issues:

  1. Moderate Impact: The pad registers a lot of false two-finger touches, resulting in getting a context menu when I am trying to click. It's not debilitating, but it does happen several times per hour. If there is any way to increase the minimum location proximity threshold between the two touches, that may fix this. Unfortunately, I can't reproduce on-demand.
  2. Low Impact: When holding one finger on the touchpad for extended period, sometimes the scroll will "jiggle" until released. This may be related to the first point

@adventures
Copy link

Update on this - I have been using the updated driver for couple of full days on Magic Trackpad 2 + Windows 10 ThinkPad, and, overall, it is definitely usable now. I have noticed only two (possibly related) issues:

  1. Moderate Impact: The pad registers a lot of false two-finger touches, resulting in getting a context menu when I am trying to click. It's not debilitating, but it does happen several times per hour. If there is any way to increase the minimum location proximity threshold between the two touches, that may fix this. Unfortunately, I can't reproduce on-demand.
  2. Low Impact: When holding one finger on the touchpad for extended period, sometimes the scroll will "jiggle" until released. This may be related to the first point

I can confirm the first issue for me as well using Windows 11 beta.

@not-holar
Copy link

I've been using this version for a while and it's just ever-so-slightly not sensitive enough, especially with multi-touch gestures. It rejects light touches so i ended up really chafing my index finger after a while

@marc2323
Copy link

PTP-4187 fixed the finger hover jittery issue for me. I will report back if other issues occur. This fix should go into the main. Thanks for all your work!

@wredmatic
Copy link

PTP-4187 greatly improved single-finger use for my magic trackpad 2, but multi-touch gestures (especial 3 or more fingers) frequently fails to register touches/swipes (e.g. 3 finger swipes are registered as 2). I actually decided to go back to the mainline release because it was less problematic overall. Would it be feasible to create a version in between the sensitivity between this and the mainline release?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature 640: Sensitivity Adjustment Interface/Application
8 participants