Skip to content
  • Martin Flöser's avatar
    Implement support for the relative pointer protocol · 6dd6729f
    Martin Flöser authored
    Summary:
    This change implements the zwp_relative_pointer_v1 protocol which allows
    to send relative motion events.
    
    The (unstable) protocol consists of a RelativePointerManager which
    creates RelativePointers for a given Pointer. This interface currently
    only has one event to report the relative motion. It carries the delta,
    the non-accelerated-delta and a timestamp in microsends granularity.
    
    On the server side the implementation is mostly internal. Once a
    RelativePointerManagerInterface is created one can send relative motion
    events through the SeatInterface. The SeatInterface takes care of
    sending it to the responding RelativePointerInterface. The protocol does
    not restrict the sending of "normal" and relative motion events. Thus it
    can be combined in any way one wants. This allows to have a rather
    simple implementation. A user of the SeatInterface can just start to
    feed the relative motion events (if the information is available) to the
    SeatInterface together with the pointer events.
    
    On client side a new RelativePointerManager and RelativePointer class
    are added. The RelativePointerManager creates the RelativePointer for a
    given Pointer. The event sent to RelativePointer is transformed in a
    normal signal.
    
    Reviewers: #plasma
    
    Subscribers: plasma-devel
    
    Tags: #plasma_on_wayland
    
    Differential Revision: https://phabricator.kde.org/D2978
    6dd6729f