diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-05-15 16:41:08 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-05-22 09:23:39 +0930 |
commit | 44e458285bb2e7771963a9ab9b5f03d2fb48e611 (patch) | |
tree | ce58b432c5633936ff8e525d110b26d930a5b396 | |
parent | 22878c30d21580146200c00070478f88d969bcaa (diff) |
Add GenericEvent and xGenericEvent definitions.
(cherry picked from commit 8a96cdca08db2563e8c4c7c9a110a3ab6d973fcc)
-rw-r--r-- | X.h | 3 | ||||
-rw-r--r-- | Xproto.h | 32 |
2 files changed, 34 insertions, 1 deletions
@@ -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, @@ -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. */ |