diff options
author | Olivier Fourdan <ofourdan@redhat.com> | 2021-02-11 09:48:12 +0100 |
---|---|---|
committer | Olivier Fourdan <ofourdan@redhat.com> | 2021-02-15 09:42:00 +0100 |
commit | b5e1f13681090fc327dc2cabee1dc123273e785b (patch) | |
tree | 47276ce2e4f7754604fb7c29d024035018cca48d /hw | |
parent | 213129012bc0fe508a8a4180ffda1ef661894049 (diff) |
dix: Add POINTER_RAWONLY flag
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: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130
Diffstat (limited to 'hw')
-rw-r--r-- | hw/xfree86/common/xf86Module.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h index af1fe4187..7b478d5c2 100644 --- a/hw/xfree86/common/xf86Module.h +++ b/hw/xfree86/common/xf86Module.h @@ -75,7 +75,7 @@ */ #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) #define ABI_VIDEODRV_VERSION SET_ABI_VERSION(25, 2) -#define ABI_XINPUT_VERSION SET_ABI_VERSION(24, 2) +#define ABI_XINPUT_VERSION SET_ABI_VERSION(24, 3) #define ABI_EXTENSION_VERSION SET_ABI_VERSION(10, 0) #define MODINFOSTRING1 0xef23fdc5 |