From 1e63d01d041108db6fe5be32d033e80419a6ab05 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 12 Apr 2011 13:07:53 +1000 Subject: [PATCH] XI2.1: send RawEvents at all times. When a client grabbed a device, XI 2.0 only sends RawEvents to that client. This behaviour is problematic and cannot be worked around for many applications that need to continue receiving events. On the other hand, no client seems to rely on this behaviour or use it to its advantage. For XI 2.1, disable this behaviour and continue to send raw events regardless of the grab state of the device. Signed-off-by: Peter Hutterer Acked-by: Chase Douglas Reviewed-by: Daniel Stone Reviewed-by: Jeremy Huddleston --- specs/XI2proto.txt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index bf8ca90..9ec9515 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -34,6 +34,12 @@ used on applications employing the core protocol. XI2 addresses both of these issues by enabling devices to be both extended and core devices and providing device information in each event (with the exception of core events). +2.1 Changes +----------- +Changes introduced by version 2.1 + +- RawEvents are sent regardless of the grab state. + // ❧❧❧❧❧❧❧❧❧❧❧ 2. Notations used in this document @@ -1600,8 +1606,12 @@ transformed data as used in the server. Transformations include, but are not limited to, axis clipping and acceleration. Transformed valuator data may be equivalent to raw data. In this case, both raw and transformed valuator data is provided. -RawEvents are sent exclusively to all root windows or to the client -that grabbed the device only. +RawEvents are sent exclusively to all root windows. +Clients supporting XI 2.0 receive raw events when the device is not grabbed, +or when the device is grabbed by the client but not when the device is +grabbed by another client. +Clients supporting XI 2.1 or later receive raw events at all times, even +when the device is grabbed by another client. eventtype The type of event that occured on the device.