summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2011-07-29 10:09:02 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-09-02 14:49:39 +1000
commitaf1fb609beece899188469a81ac9d8c5e07bfa4a (patch)
treec4abad367a433dd1f5f703231cbbc0a15ec3dc48
parent1e63d01d041108db6fe5be32d033e80419a6ab05 (diff)
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 <http://bugs.freedesktop.org/show_bug.cgi?id=34420> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
-rw-r--r--XI2proto.h2
-rw-r--r--specs/XI2proto.txt7
2 files changed, 8 insertions, 1 deletions
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