Bug 19525 (syn-pointer-glide) - Implement pointer glide (kinetics) for touchpads
Summary: Implement pointer glide (kinetics) for touchpads
Status: RESOLVED WONTFIX
Alias: syn-pointer-glide
Product: xorg
Classification: Unclassified
Component: Input/synaptics (show other bugs)
Version: git
Hardware: Other All
: medium enhancement
Assignee: Dylan McCall
QA Contact:
URL: https://code.launchpad.net/~dylanmcca...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-12 15:58 UTC by Dylan McCall
Modified: 2009-02-01 14:52 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Patch for pointer glide in Synaptics touchpad driver, generated by git-diff. (8.41 KB, patch)
2009-01-12 16:08 UTC, Dylan McCall
no flags Details | Splinter Review

Description Dylan McCall 2009-01-12 15:58:22 UTC
The touchpad is often accused of being a difficult input device with severe ergonomics issues. I believe a lot of this issue is with software!

The way one must laboriously push his fingers around the things seems unnatural.  The movement is similar to pushing a very heavy object. Being a touch interface, it would make way more sense if the pointer felt more like a real object. Tap to click is on the right track, but what about moving the pointer?

So I have tried fixing that!
It's actually a really simple hack, too. If you haven't guessed it, the pointer with this modification now behaves a lot like that kinetic scrolling stuff everyone loves. If the finger is lifted while moving (a flicking motion), the pointer keeps sliding, gradually slowed down by friction. This allows the user to do less dragging, and gives the interface an interesting 'floaty' feel.

Normal pointer movement still works fine since people generally stop at the end of a movement while still touching the pad, and if not are likely to click it again in a moment.

My patch is unobtrusive, mainly adding code to synaptics.c (as well as some little variables elsewhere). The heavy calculations are only carried out if PointerGlide is set to 1 (enabled). By default, PointerGlide is set to 0. synclient has also been adjusted, adding support for the new configuration variables PointerGlide, PointerGlideFriction and PointerGlideMaxSpeed.
Comment 1 Dylan McCall 2009-01-12 16:08:59 UTC
Created attachment 21907 [details] [review]
Patch for pointer glide in Synaptics touchpad driver, generated by git-diff.

Note that I have been running the driver with the applied patch for about two weeks without any trouble, but it could probably do with more testing. The version of the driver I have been running was from Debian, as well; I am submitting this somewhat blindly on the assumption that touchpad drivers don't get rebuilt very often.
Comment 2 Peter Hutterer 2009-02-01 14:51:55 UTC
See the discussion on 
http://lists.freedesktop.org/archives/xorg/2009-January/042855.html

I'm closing this as WONTFIX for now until we have some actual data on usability. Please reopen when appropriate.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.