Bug 75074 - Since g6d47d33 impossible to disable horizontal/vertical scroll or set natural scrolling
Summary: Since g6d47d33 impossible to disable horizontal/vertical scroll or set natura...
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/synaptics (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Peter Hutterer
QA Contact:
Depends on:
Reported: 2014-02-17 03:00 UTC by Andrei Borzenkov
Modified: 2014-02-21 01:05 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Description Andrei Borzenkov 2014-02-17 03:00:54 UTC
Commit g6d47d33 made impossible to set zero for "Synaptics Scrolling Distance". This breaks documented API: according to manual page, to disable scrolling one must set value of VertScrollDelta/HorizScrollDelta to 0. But exactly this is not possible now.

What is worse, somehow I get HorizScrollDelta == 0 anyway (I do have disabled horizontal scrolling in mouse settings) so now I cannot change value of VertScrollDelta at all, e.g. to set natural scrolling:

bor@opensuse:~/src/xf86-input-synaptics> xinput list-props 12 | grep 'Scrolling Distance'
	Synaptics Scrolling Distance (298):	100, 0
bor@opensuse:~/src/xf86-input-synaptics> xinput set-prop 12 298 -100 0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Value in failed request:  0x12a
  Serial number of failed request:  19
  Current serial number in output stream:  20
bor@opensuse:~/src/xf86-input-synaptics> rpm -q xf86-input-synaptics
Comment 1 Andrei Borzenkov 2014-02-17 15:47:33 UTC
(In reply to comment #0)
> What is worse, somehow I get HorizScrollDelta == 0 anyway

The SynapticsPrivate is initialized to zeroes so both horizontal and vertical scroll defaults to zero anyway. So what is the pint of not allowing it to be set to zero thereafter?

So how are we supposed to disable scrolling now after it was enabled?
Comment 2 Peter Hutterer 2014-02-18 00:16:56 UTC
We've introduced a separate toggle to enable/disable scrolling and the scrolling method a few years back. This allows leaving the default deltas in place (or calculating different values) independent from whether the scroll methods is enabled at that time or not.

"Synaptics Two-Finger Scrolling" takes 2 boolean values to enable/disable vertical and horizontal two-finger scrolling

"Synaptics Edge Scrolling" takes 3 boolean values to enable/disable vertical, horizontal and corner edge scrolling

not sure how you end up with a 0 scroll distance though, the default value is calculated based on the dimensions of the touchpad. Do you have that option set in your xorg.conf?
Comment 3 Andrei Borzenkov 2014-02-19 15:57:45 UTC
(In reply to comment #2)
> Do you have that
> option set in your xorg.conf?

Yes, as part of defaults installed by distro package.

Thank you!
Comment 4 Peter Hutterer 2014-02-19 22:06:50 UTC
weird. which distro sets this? please file bug with them to change it over, the 'new' options have existed for years.
Comment 5 Peter Hutterer 2014-02-21 01:05:53 UTC
documented now in git

commit 2ea76fad6545a712713de1a09965158805e83c55
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 18 10:14:37 2014 +1000

    man: setting scroll deltas to 0 doesn't work (#75074)

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.