aboutsummaryrefslogtreecommitdiff
path: root/nexgb/xgbgen/context.go
diff options
context:
space:
mode:
authoraarzilli <alessandro.arzilli@gmail.com>2017-01-18 09:53:26 +0100
committerPřemysl Janouch <p@janouch.name>2018-09-08 16:49:26 +0200
commit1c01d79ba14a802c603ca2e5bbd35156e3363b85 (patch)
tree5ba818deb4c33dd44df9b5c66dc9d45f3b1672e5 /nexgb/xgbgen/context.go
parenta102c4056f6b01035772cf79060012ff800c9669 (diff)
downloadhaven-1c01d79ba14a802c603ca2e5bbd35156e3363b85.tar.gz
haven-1c01d79ba14a802c603ca2e5bbd35156e3363b85.tar.xz
haven-1c01d79ba14a802c603ca2e5bbd35156e3363b85.zip
Changed xgbgen to support xcb-proto 1.12
* Added minimal support for switch fields. * Changed the way Size is calculated to accomodate for lists inside structs (added to randr) * Removed heuristic to place alignment gaps, they are now explicitly described in xml
Diffstat (limited to 'nexgb/xgbgen/context.go')
-rw-r--r--nexgb/xgbgen/context.go19
1 files changed, 17 insertions, 2 deletions
diff --git a/nexgb/xgbgen/context.go b/nexgb/xgbgen/context.go
index f18fd67..0728b64 100644
--- a/nexgb/xgbgen/context.go
+++ b/nexgb/xgbgen/context.go
@@ -49,8 +49,23 @@ func (c *Context) Morph(xmlBytes []byte) {
// Translate XML types to nice types
c.protocol = parsedXml.Translate(nil)
-
- c.protocol.AddAlignGaps()
+
+ // For backwards compatibility we patch the type of the send_event field of
+ // PutImage to be byte
+ if c.protocol.Name == "shm" {
+ for _, req := range c.protocol.Requests {
+ if req.xmlName != "PutImage" {
+ continue
+ }
+ for _, ifield := range req.Fields {
+ field, ok := ifield.(*SingleField)
+ if !ok || field.xmlName != "send_event" {
+ continue
+ }
+ field.Type = &Base{ srcName: "byte", xmlName: "CARD8", size: newFixedSize(1, true) }
+ }
+ }
+ }
// Start with Go header.
c.Putln("// Package %s is the X client API for the %s extension.",