• Peter Hutterer's avatar
    Add drag lock support · e3a888c3
    Peter Hutterer authored
    First, why is this here and not in libinput: drag lock should be implemented
    in the compositor (not in libinput) so it can provide feedback when it
    activates and grouped in with other accessibility features. That will work for
    Wayland but in X the compositor cannot filter button events - only the server
    and the drivers can.
    
    This patch adds mostly the same functionality that evdev provides with two
    options on how it works:
    * a single button number configures the given button to lock the next button
      pressed in a logically down state until a press+ release of that same button
      again
    * a set of button number pairs configures each button with the to-be-locked
      logical button, i.e. a pair of "1 3" will hold 3 logically down after a
      button 1 press
    
    The property and the xorg.conf options take the same configuration as the
    evdev driver (though the property has a different prefix, libinput instead of
    Evdev).
    
    The behavior difference to evdev is in how releases are handled, evdev sends
    the release on the second button press event, this implementation sends the
    release on the second release event.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=85577Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: 's avatarHans de Goede <hdegoede@redhat.com>
    e3a888c3
draglock.h 5.12 KB