From c455db2c251770a729d2747e6f05d53c2563b428 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 13 Jul 2009 15:30:50 +1000 Subject: [PATCH] XI2: Split up raw events into multiple event types. Instead of a single XI_RawEvent type with subtypes to represent the actual event, split up the event into XI_RawButtonPress, XI_RawButtonRelease, etc. This way clients can select for specific raw events only instead of all of them at once. Note that raw events may be selected on master devices too, the server will route them through master devices. Signed-off-by: Peter Hutterer --- XI2.h | 16 ++++++++++++---- XI2proto.txt | 10 +++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/XI2.h b/XI2.h index 6323204..2ed65f9 100644 --- a/XI2.h +++ b/XI2.h @@ -130,9 +130,13 @@ #define XI_FocusIn 9 #define XI_FocusOut 10 #define XI_HierarchyChanged 11 -#define XI_RawEvent 12 -#define XI_PropertyEvent 13 -#define XI_LASTEVENT XI_PropertyEvent +#define XI_PropertyEvent 12 +#define XI_RawKeyPress 13 +#define XI_RawKeyRelease 14 +#define XI_RawButtonPress 15 +#define XI_RawButtonRelease 16 +#define XI_RawMotion 17 +#define XI_LASTEVENT XI_RawMotion /* NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value * as XI_LASTEVENT if the server is supposed to handle masks etc. for this * type of event. */ @@ -152,7 +156,11 @@ #define XI_FocusInMask (1 << XI_FocusIn) #define XI_FocusOutMask (1 << XI_FocusOut) #define XI_HierarchyChangedMask (1 << XI_HierarchyChanged) -#define XI_RawEventMask (1 << XI_RawEvent) #define XI_PropertyEventMask (1 << XI_PropertyEvent) +#define XI_RawKeyPressMask (1 << XI_RawKeyPress) +#define XI_RawKeyReleaseMask (1 << XI_RawKeyRelease) +#define XI_RawButtonPressMask (1 << XI_RawButtonPress) +#define XI_RawButtonReleaseMask (1 << XI_RawButtonRelease) +#define XI_RawMotionMask (1 << XI_RawMotion) #endif /* _XI2_H_ */ diff --git a/XI2proto.txt b/XI2proto.txt index a776849..12926c5 100644 --- a/XI2proto.txt +++ b/XI2proto.txt @@ -1462,7 +1462,6 @@ EVENTHEADER { type: BYTE ┌─── RawEvent EVENTHEADER - eventtype: RAWTYPE detail: CARD32 valuators_len: CARD16 valuators: SETofVALUATORMASK @@ -1470,13 +1469,10 @@ EVENTHEADER { type: BYTE axisvalues_raw: LISTofFP3232 └─── - RAWTYPE { Motion, KeyPress, KeyRelease, ButtonPress, ButtonRelease } - A RawDevice event provides the information provided by the driver to the - client. RawDevice events are only generated for slave devices and provide - both the raw data as supplied by the driver and transformed data as used - in the server. Transformations include, but are not limited to, axis - clipping and acceleration. + client. RawDevice provide both the raw data as supplied by the driver and + 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 -- 2.7.4