summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2007-05-15 16:41:08 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2008-05-22 09:23:39 +0930
commit44e458285bb2e7771963a9ab9b5f03d2fb48e611 (patch)
treece58b432c5633936ff8e525d110b26d930a5b396
parent22878c30d21580146200c00070478f88d969bcaa (diff)
Add GenericEvent and xGenericEvent definitions.
(cherry picked from commit 8a96cdca08db2563e8c4c7c9a110a3ab6d973fcc)
-rw-r--r--X.h3
-rw-r--r--Xproto.h32
2 files changed, 34 insertions, 1 deletions
diff --git a/X.h b/X.h
index 0a9c501..ebcc767 100644
--- a/X.h
+++ b/X.h
@@ -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,
diff --git a/Xproto.h b/Xproto.h
index e5bba70..4ec32b8 100644
--- a/Xproto.h
+++ b/Xproto.h
@@ -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. */