summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/xcb/README
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/xcb/README')
-rw-r--r--src/3rdparty/xcb/README50
1 files changed, 47 insertions, 3 deletions
diff --git a/src/3rdparty/xcb/README b/src/3rdparty/xcb/README
index 362fa54bf8..af899024c3 100644
--- a/src/3rdparty/xcb/README
+++ b/src/3rdparty/xcb/README
@@ -8,15 +8,59 @@ The following parts were removed from it:
- SendExtensionEvent API (requires definition of xcb_raw_generic_event_t
from libxcb 1.13)
+The following has been added:
+ - A fix for forwards compatibility bug with X Server 21.1 (see below)
+ - Touchpad gesture support (see below)
+
*****************************************************************
As of time of writing the minimal required libxcb version is 1.11, hence
-we could restore the Pointer Barriers API, but we don't use it, so it is
-not worth the hustle. When we will bump the minimal required version of libxcb
-to 1.13, then we can drop the bundled xcb-xinput altogether.
+we could restore the Pointer Barriers API, but we don't use it.
+Additionally, we support touchpad gestures which is a much newer addition
+to libxcb, but fortunately very well contained. When we will bump the
+minimal required version of libxcb to 1.15, then we can drop the bundled
+xcb-xinput altogether.
The xcb-xinput files where modified to use system includes, see:
src/3rdparty/xcb/include/xcb/fixup-xinput-h.patch
src/3rdparty/xcb/libxcb/fixup-xinput-c.patch
+*****************************************************************
+
+A forwards compatibility bug in libxcb xinput has been addressed
+by the following patch:
+
+src/3rdparty/xcb/libxcb/xinput-device-class-sizeof.patch
+
+The crux of the issue is that libxcb thinks that it knows about all device
+class types sent by the X server XInput extension. With the addition of
+touchpad gestures in XInput 2.4 and X server 21.1 this is no longer the case
+and libxcb fails horribly by thinking that the protocol was malformed.
+
+The X server currently has a workaround, but it would not address the following
+situation:
+
+ - there are multiple modules within the same X client (e.g. part of the application
+ uses Qt, another part talks to X server via another library)
+ - both of the modules talk to XI
+ - at least one module requests for XI 2.4 protocol support.
+
+The request for XI 2.4 disables the workaround on the X server and Qt side would
+crash horribly.
+
+For more details, see https://gitlab.freedesktop.org/xorg/lib/libxcb/-/merge_requests/20
+
+*****************************************************************
+
+Touchpad gestures support has been added in the following patches:
+
+src/3rdparty/xcb/include/xcb/touchpad-gestures-h.patch
+src/3rdparty/xcb/libxcb/touchpad-gestures-c.patch
+
+The patches were generated by cherry-picking
+151ee69847c706e2b9d38c82e20534910f140b55 from xcb-xcbproto master on top of 1.13,
+generating xinput.h and xinput.c files and comparing to what would be generated in
+vanilla libxcb 1.13 and xcb-proto 1.13.
+
+For more details, see https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/merge_requests/16