Bug 91589

Summary: Please provide ability to disable horizontal scroll
Product: Wayland Reporter: sudhir
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description sudhir 2015-08-09 05:38:28 UTC
Horizontal scrolling causes too much unintended scrolling in horizontal direction. It makes working with anything too tedious. When I do move my fingers in up and down direction it is natural for them to move slightly in horizontal direction. Humanly, it is impossible for us to perform movements, with 100% accuracy, in one direction.

Whether horizontal scrolling is useful should be within the rights of the user. Please provide API/options for users to be able to to disable horizontal scrolling.

I am on Fedora 22 KDE.

rpm -qa | grep libinput
libinput-0.20.0-6.fc22.x86_64
xorg-x11-drv-libinput-0.11.0-3.fc22.x86_64
Comment 1 Peter Hutterer 2015-08-10 06:47:04 UTC
which application do you have the biggest issues here?

(In reply to sudhir from comment #0)
> Whether horizontal scrolling is useful should be within the rights of the
> user. Please provide API/options for users to be able to to disable
> horizontal scrolling.

it's widget-dependent, so while I see the point for having the config I'd rather have this in the toolkit that knows whether it makes sense in a specific context
Comment 2 sudhir 2015-08-10 07:25:41 UTC
(In reply to Peter Hutterer from comment #1)
> which application do you have the biggest issues here?
> 
> (In reply to sudhir from comment #0)
> > Whether horizontal scrolling is useful should be within the rights of the
> > user. Please provide API/options for users to be able to to disable
> > horizontal scrolling.
> 
> it's widget-dependent, so while I see the point for having the config I'd
> rather have this in the toolkit that knows whether it makes sense in a
> specific context

Chrome uses their own AURA toolkit. Jetbrains' IntelliJ Idea, I think, uses Java's Swing toolkit. I also have problem with KDE apps like Kontact(email, rss reader, etc.), kwrite, etc.
Comment 3 Peter Hutterer 2015-08-12 01:28:53 UTC
http://patchwork.freedesktop.org/patch/56871/
Comment 4 Peter Hutterer 2015-08-13 06:51:01 UTC
commit f139f1424936abdc43b2c8611d569b496ffa4a68
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 12 10:15:31 2015 +1000

    Add an option to disable horizontal scrolling
Comment 5 Daniel Stone 2015-08-14 16:16:37 UTC
Synaptics had 'lock' functionality, where as soon as you'd started scrolling in one direction, you required a much higher relative threshold to start scrolling in the other direction. That would seem to be a lot more useful than having people just smash horizontal scroll off entirely.
Comment 6 Mantas Mikulėnas 2015-08-16 15:11:58 UTC
(In reply to Daniel Stone from comment #5)
> Synaptics had 'lock' functionality, where as soon as you'd started scrolling
> in one direction, you required a much higher relative threshold to start
> scrolling in the other direction. That would seem to be a lot more useful
> than having people just smash horizontal scroll off entirely.

Heh, as always, some other users (e.g. me) would consider this 'locking' to be one of the most annoying misfeatures in the Windows touchpad drivers... I like free scrolling in all directions, exactly how libinput already implements it. (Cue xkcd 1172.)

But on the other hand, "unintended scrolling in horizontal direction" is just half the story – some toolkits are even worse.

Several programs – such as VirtualBox, rdesktop, xFreeRDP, some (not all) Java toolkits – outright misinterpret the horizontal-scroll events as if the *back/forward navigation buttons* were clicked (there used to be mice with such buttons), or as if PageUp/PageDown were pressed, or something equally annoying...

For example, https://www.virtualbox.org/ticket/700 or https://www.virtualbox.org/ticket/10838 or https://github.com/FreeRDP/FreeRDP/issues/2302 – some of those bug reports have remained unfixed for almost a decade.

So I agree that either disabling or locking (as long as it's /optional/) can be useful as a workaround to such bugs... as much as I hate it, I've often had to disable horizontal scrolling to avoid making FreeRDP unusable.

So thanks Peter for implementing this option.
Comment 7 Peter Hutterer 2015-08-16 21:49:31 UTC
fwiw, we have a scroll direction lock in libinput, but the threshold is a lot smaller than the one in synaptics. free scrolling should be easy to trigger where needed and just not be an issue where it isn't needed.

Hence the implementation of this in the xorg driver rather than libinput - we don't expect the Xorg stack to be fully updated to handle horizontal scroll events correctly, for Wayland we can still hope.

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.