Skip to content
  • Peter Hutterer's avatar
    Implement a touchpad scroll distance property · 023ac46e
    Peter Hutterer authored
    
    
    To be used for touchpads and continuous (i.e. button-based scrolling).
    
    libinput provides us with pixel data for finger-based and button-based
    scrolling but the X server does support this - XI2.1 smooth scrolling is
    merely centered around a logical scroll click (defined as "increment"), with
    smooth scrolling being a fraction of that increment. For example, in the old
    synaptics driver that value was in device-specific units and thus different
    for every device.
    
    The increment is a constant value set in the ScrollClass and cannot be changed
    at device runtime. So we simply initialize with a random default (15, because
    that works well for wheels) and then scale our pixel delta in to that range.
    
    With the default value, a 15 pixel movement would result in a logical scroll
    click, if the distance is set to 30 the users has to move 30 pixels to trigger
    that scroll click.
    
    From the client's perspective nothing changes, the increment is still the
    same.
    
    Range checks are quite restrictive, this option is supposed to improve
    usability, not as a workaround around other bugs.
    
    Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
    023ac46e