1

I've recently been trying out Ubuntu 20.10 with Gnome desktop on Wayland, using a touchpad that supports precision scrolling, i.e. which does not emulate a mousewheel.

After enabling natural scrolling for the touchpad the scroll gestures I make with my fingers map naturally to the movement of all the scrollable content on screen (moving my fingers upwards moves the content upwards). This is opposed to mapping the physical gesture to the movement of the "scrollbar thumb" (the handle) where moving my fingers upwards would move the thumb upwards, but the content downwards.

However when hovering over a GUI element with an unambiguous mapping from physical to visual movement, such as the system's volume slider, the mapping between gesture and widget movement is surprisingly broken. In other words, an upwards gesture results in a downwards adjustment of the slider handle (let's ignore that the slider is horizontal -- if it were vertical it would undoubtedly literally have moved downwards). Obviously the widget is using the wrong abstraction to determine the direction of its movement.

Quick overview (precision scrolling)

In this post I'm focusing on precision scrolling events from modern touchpads since I get the impression that that is the most modern scrolling API.

  • Natural scrolling
    • Physical movement: down
      • Scrollable content movement: down (match)
      • Slider movement: up (mismatch)
  • "Normal" scrolling
    • Physical movement: down
      • Scrollbar "thumb" movement: down (match)
      • Slider movement: down (match)

As mentioned, the slider has an unambiguous mapping between its movement and gesture movement but still manages to do the wrong thing. (It's unambiguous since a slider only has one moving part, as opposed to scrollable views which have two moving parts: content, and scrollbar thumb)

Could you explain to me how a widget like this could determine the correct gesture direction instead of using the wrong abstraction as it does currently? How would it go about getting the absolute direction of movement? Why doesn't it already do this?

I'm not asking as a developer in this case, but as someone interested in interaction design and in this problem. It seems like a simple thing to use the absolute direction of movement in all widgets that don't incorporate a scrollbar, since there is no ambiguity. I'm currently not very familiar with the intricacies of event handling in various Linux desktop environments.

4
  • "natural scrolling" means "scroll down when I scroll up and vice-versa"; it's just a straight swap of the signals for buttons 4 & 5 on the mouse, and devices simulating a mouse. I don't think "how could it do X" is an on-topic question here, however. Commented Nov 11, 2020 at 21:10
  • @MichaelHomer In this question I have deliberately tried to focus on trackpads which (as I understand it) nowadays deal with more modern precision scrolling events, in order to avoid discussion about legacy '90s scroll wheel buttons. My assumption is that the more modern the technology the greater the opportunity has been to take multiple levels of abstraction into account. I'm just interested in how the current modern design supports this basic use case.
    – Andreas
    Commented Nov 11, 2020 at 22:33
  • @MichaelHomer I did try to find the right place to ask, but I'll be happy to migrate my question to somewhere more suitable if you could point me to the part of the guidelines that I missed so that I don't repeat the mistake.
    – Andreas
    Commented Nov 11, 2020 at 22:34
  • @MichaelHomer I've clarified the question to be about precision scrolling.
    – Andreas
    Commented Nov 11, 2020 at 22:40

0

You must log in to answer this question.

Browse other questions tagged .