Add GenericEvent and xGenericEvent definitions.

(cherry picked from commit 8a96cdca08db2563e8c4c7c9a110a3ab6d973fcc)
This commit is contained in:
Peter Hutterer 2007-05-15 16:41:08 +09:30
parent 22878c30d2
commit 44e458285b
2 changed files with 34 additions and 1 deletions

3
X.h
View file

@ -216,7 +216,8 @@ are reserved in the protocol for errors and replies. */
#define ColormapNotify 32
#define ClientMessage 33
#define MappingNotify 34
#define LASTEvent 35 /* must be bigger than any event # */
#define GenericEvent 35
#define LASTEvent 36 /* must be bigger than any event # */
/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,

View file

@ -1212,6 +1212,38 @@ typedef struct _xEvent {
} u;
} xEvent;
/*********************************************************
*
* Generic event
*
* Those events are not part of the core protocol spec and can be used by
* various extensions.
* type is always GenericEvent
* extension is the minor opcode of the extension the event belongs to.
* evtype is the actual event type, unique __per extension__.
*
* GenericEvents can be longer than 32 bytes, with the length field
* specifying the number of 4 byte blocks after the first 32 bytes.
*
*
*/
typedef struct
{
BYTE type;
CARD8 extension;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 evtype B16;
CARD16 pad2 B16;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
CARD32 pad7 B32;
} xGenericEvent;
/* KeymapNotify events are not included in the above union because they
are different from all other events: they do not have a "detail"
or "sequenceNumber", so there is room for a 248-bit key mask. */