package nexgb // Sync sends a round trip request and waits for the response. // This forces all pending cookies to be dealt with. // You actually shouldn't need to use this like you might with Xlib. Namely, // buffers are automatically flushed using Go's channels and round trip requests // are forced where appropriate automatically. func (c *Conn) Sync() { cookie := c.NewCookie(true, true) c.NewRequest(c.getInputFocusRequest(), cookie) cookie.Reply() // wait for the buffer to clear } // getInputFocusRequest writes the raw bytes to a buffer. // It is duplicated from xproto/xproto.go. func (c *Conn) getInputFocusRequest() []byte { size := 4 b := 0 buf := make([]byte, size) buf[b] = 43 // request opcode b += 1 b += 1 // padding Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 return buf }