Bug 30756 - Coasting initiated by circular scrolling when *TwoFingerScroll is set
Summary: Coasting initiated by circular scrolling when *TwoFingerScroll is set
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/synaptics (show other bugs)
Version: unspecified
Hardware: All All
: medium normal
Assignee: Peter Hutterer
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-10 11:11 UTC by Chris van Dijk
Modified: 2011-05-30 21:43 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
output of `synclient -l` (2.08 KB, application/octet-stream)
2010-10-10 11:11 UTC, Chris van Dijk
no flags Details

Description Chris van Dijk 2010-10-10 11:11:42 UTC
Created attachment 39323 [details]
output of `synclient -l`

Description:
Coasting does not work as expected when it is initiated from circular scrolling and *TwoFingerScroll is set. Instead of being aware that I was circular scrolling clockwise or anticlockwise, coasting will begin based on the linear (and not angular) velocity of my finger before it left the touchpad.

Steps to reproduce:
For example, if I was moving my finger clockwise for circular scrolling and left via the upper edge of the touchpad, instead of coasting downwards as expected it will scroll upwards as that is the direction that my finger was moving in when it left the touchpad. This also occurs when lifting my finger off the touchpad, coasting in the direction that my finger was moving when it left the touchpad, be it upwards, downwards or horizontally.

To reiterate this will only occur when *TwoFingerScroll is set, and is new to 1.3.0 (as compared to 1.2.2).

Versions:
xorg-server: 1.9.0
xf86-input-synaptics: 1.3.0

Attached:
output of `synclient -l`
Comment 1 Chris van Dijk 2010-10-11 21:03:08 UTC
$ git bisect bad
56655fd15f676fea143f3963e23b464b275b2e77 is the first bad commit
commit 56655fd15f676fea143f3963e23b464b275b2e77
Author: Patrick Curran <pjcurran@wisc.edu>
Date:   Fri Jul 23 17:28:01 2010 -0500

    Added "friction physics" so coasting can stop on its own.
    
    When you are coasting (but not corner coasting) you might want the
    scrolling to slow down and stop on its own.  This also lets you
    start coasting while using a two finger scroll.
    
    Signed-off-by: Patrick Curran <pjcurran@wisc.edu>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

:040000 040000 b30b2cea211460d13ea03edda1340f3a2ddeb529 a855d06575d6ee7b2d38e24b4ed2de54f36b4046 M	include
:040000 040000 c8ec68221714ba170861a0758673e384b51ff45d be46c9f243956f92144246b26e2979d780ae3f6c M	man
:040000 040000 ec37bdeac969224994dab5247d303a45a138f5df ac05ed53382acd34ac10255aa356ca2b963c84eb M	src
:040000 040000 786e0612dc4b7055b7b9c3b312512be6d89b82ee 51691200e4ff29a508c7e7d0787431221253a003 M	tools
Comment 2 Patrick Curran 2010-10-29 10:39:14 UTC
(In reply to comment #0)
> Created an attachment (id=39323) [details]
> output of `synclient -l`
> 
> Description:
> Coasting does not work as expected when it is initiated from circular scrolling
> and *TwoFingerScroll is set. Instead of being aware that I was circular
> scrolling clockwise or anticlockwise, coasting will begin based on the linear
> (and not angular) velocity of my finger before it left the touchpad.

Previously, were you able to start coasting based on the angular velocity?  Or would not start coasting at all?  

I was the one who introduced the bug and I can see why it starts coasting when it shouldn't, but I don't see any code that can compute the angular velocity.  In other words, I can make it not coast at all when you are circular scrolling, but I'm not sure how to make it coast correctly.
Comment 3 Peter Hutterer 2010-12-07 17:00:17 UTC
(In reply to comment #2)
> I was the one who introduced the bug and I can see why it starts coasting when
> it shouldn't, but I don't see any code that can compute the angular velocity. 
> In other words, I can make it not coast at all when you are circular scrolling,
> but I'm not sure how to make it coast correctly.

I think not coasting for circular scrolling would be the best solution.
Comment 4 Peter Hutterer 2011-05-30 21:43:02 UTC
commit 0d0ba35951cbbb092ae0f5bd559d7daacb5b77e8
Author: Patrick Curran <pjcurran@wisc.edu>
Date:   Fri May 27 11:11:44 2011 -0500

    Modified start_coasting to handle circular scrolling


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.