XIAllowEvents was extended with touchid and grab_window in 2ea2f99f4fe1dcd3b8e539ca41c482fc40a0533d. This extended the size of the request from 12 to 20 but also broke the ABI. Older server match the request size exactly, so compiling libXi 1.5 against inputproto 2.2 and then running it against a pre-XI 2.2 server causes a BadLength for any XIAllowEvent request.
Change the new fields from actual fields to simple comments and let the library/server deal with the extra data. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- XI2proto.h | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/XI2proto.h b/XI2proto.h index 93d7e32..9039fe7 100644 --- a/XI2proto.h +++ b/XI2proto.h @@ -647,10 +647,10 @@ typedef struct { uint16_t deviceid; uint8_t mode; uint8_t pad; - uint32_t touchid; /**< Since XI 2.2 */ - Window grab_window; /**< Since XI 2.2 */ + /* uint32_t touchid; Since XI 2.2 */ + /* Window grab_window; Since XI 2.2 */ } xXIAllowEventsReq; -#define sz_xXIAllowEventsReq 20 /**< Was 12 before XI 2.2 */ +#define sz_xXIAllowEventsReq 12 /**< 20 in XI 2.2 */ /** -- 1.7.7.5 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel