Skip to content
  • Olivier Fourdan's avatar
    dix: Add POINTER_RAWONLY flag · b5e1f136
    Olivier Fourdan authored
    
    
    This add a new flag POINTER_RAWONLY for GetPointerEvents() which does
    pretty much the opposite of POINTER_NORAW.
    
    Basically, this tells GetPointerEvents() that we only want the
    DeviceChanged events and any raw events for this motion but no actual
    motion events.
    
    This is preliminary work for Xwayland to be able to use relative motion
    events for raw events. Xwayland would use absolute events for raw
    events, but some X11 clients (wrongly) assume raw events to be always
    relative.
    
    To allow such clients to work with Xwayland, it needs to switch to
    relative raw events (if those are available from the Wayland
    compositor).
    
    However, Xwayland cannot use relative motion events for actual pointer
    location because that would cause a drift over time, the pointer being
    actually controlled by the Wayland compositor.
    
    So Xwayland needs to be able to send only relative raw events, hence
    this API.
    
    Bump the ABI_XINPUT_VERSION minor version to reflect that API addition.
    
    v2: Actually avoid sending motion events (Peter)
    v3: Keep sending raw emulated events with RAWONLY (Peter)
    
    Suggested-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
    Reviewed-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
    Related: xorg/xserver#1130
    b5e1f136