Skip to content
Snippets Groups Projects
  1. Mar 22, 2023
  2. Mar 09, 2023
  3. Mar 08, 2023
  4. Mar 03, 2023
  5. Feb 22, 2023
  6. Feb 20, 2023
  7. Feb 17, 2023
  8. Feb 16, 2023
    • Peter Hutterer's avatar
      dix: switch scroll button emulation to multiples of increment · 0a22502c
      Peter Hutterer authored and Olivier Fourdan's avatar Olivier Fourdan committed
      
      The current algorithm triggers a bug in Xwayland when two devices have
      different granularity of scrolling. In Xwayland, the scroll increment is
      1 and all physical devices scroll through the same (x)wayland pointer
      device.
      
      This may cause events to get lost when changing devices:
      - mouse scrolls by full increment, current value is 1.0
        last scroll button was sent for valuator value 0.0,
        delta is 1.0 and we emulate a button event.
      - touchpad scrolls by partial increment, current value is 1.3
        last scroll button was sent for valuator value 1.0, delta is 0.3
        and no button event is emulated
      - mouse scrolls by full increment, current value is -0.7,
        last scroll button was sent for valuator value 1.0, delta is -0.7
        and no button event is emulated
      
      Thus the wheel event appears to get lost. Xwayland cannot reliably
      detect this case because we don't see the physical devices.
      
      We can work around this by instead emulating buttons whenever we cross
      a multiple of increment. However, this has a drawback:
      high-resolution scroll devices can now trigger a button event storm by
      jittering across the multiple of increment. e.g. in the example above
      the touchpad moving from 1.3 to 1.0 would cause a click, despite this
      being a third of an increment.
      
      Fixes #1339
      
      Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      Acked-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
      0a22502c
    • Peter Hutterer's avatar
      dix: remove pointless "flexible" x/y axis mapping · 6f0cd151
      Peter Hutterer authored and Olivier Fourdan's avatar Olivier Fourdan committed
      
      storeLastValuators() takes the index in the mask for the x and y axis.
      Completely pointless because any device that doesn't have x/y on 0 and
      1, respectively, is going to break in fun ways anyway. And we only have
      two callers two this function, both of which hardcode 0 and 1.
      
      Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      6f0cd151
  9. Feb 15, 2023
  10. Feb 13, 2023
Loading