From af1fb609beece899188469a81ac9d8c5e07bfa4a Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 29 Jul 2011 10:09:02 +1000 Subject: Add sourceid to RawEvents (#34420) RawEvents in XI2 do not provide the source ID. The libXi headers however do and it is currently always 0. Given that the sourceid may be useful for some clients, send it down the wire. This has no effect on the wire size of the struct, we can re-use a pad byte here. X.Org Bug 34420 Signed-off-by: Peter Hutterer Reviewed-by: Daniel Stone --- XI2proto.h | 2 +- specs/XI2proto.txt | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/XI2proto.h b/XI2proto.h index 84574a5..8977e87 100644 --- a/XI2proto.h +++ b/XI2proto.h @@ -902,7 +902,7 @@ typedef struct uint16_t deviceid; Time time; uint32_t detail; - uint16_t pad0; + uint16_t sourceid; /**< The source device (XI 2.1) */ uint16_t valuators_len; /**< Length of trailing valuator mask in 4 byte units */ uint32_t flags; /**< ::XIKeyRepeat */ diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index 9ec9515..8736b18 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -1593,6 +1593,7 @@ Modifier state in mods is detailed as follows: RawEvent EVENTHEADER detail: CARD32 + sourceid*: DEVICEID flags: DEVICEEVENTFLAGS valuators_len: CARD16 valuators: SETofVALUATORMASK @@ -1600,6 +1601,8 @@ Modifier state in mods is detailed as follows: axisvalues_raw: LISTofFP3232 └─── + * since XI 2.1 + A RawEvent provides the information provided by the driver to the client. RawEvent provides both the raw data as supplied by the driver and transformed data as used in the server. Transformations include, but are @@ -1613,10 +1616,14 @@ 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. detail The button number or keycode. + sourceid + The source device that originally generated the event. The sourceid + is undefined for clients not supporting XI 2.1. flags Flags as described in DeviceEvent. valuators_len -- cgit v1.2.3