func (i *KeyboardShortcutsInhibitManager) InhibitShortcuts(surface *client.Surface, seat *client.Seat) (*KeyboardShortcutsInhibitor, error) {
	id := NewKeyboardShortcutsInhibitor(i.Context())
	const opcode = 1
	const rLen = 8 + 4 + 4 + 4
	r := make([]byte, rLen)
	l := 0
	client.PutUint32(r[l:4], i.ID())
	l += 4
	client.PutUint32(r[l:l+4], uint32(rLen<<16|opcode&0x0000ffff))
	l += 4
	client.PutUint32(r[l:l+4], id.ID())
	l += 4
	client.PutUint32(r[l:l+4], surface.ID())
	l += 4
	client.PutUint32(r[l:l+4], seat.ID())
	l += 4
	err := i.Context().WriteMsg(r, nil)
	return id, err
}
InhibitShortcuts : create a new keyboard shortcuts inhibitor object

Create a new keyboard shortcuts inhibitor object associated with
the given surface for the given seat.

If shortcuts are already inhibited for the specified seat and surface,
a protocol error "already_inhibited" is raised by the compositor.

surface: the surface that inhibits the keyboard shortcuts behavior
seat: the wl_seat for which keyboard shortcuts should be disabled
package keyboard_shortcuts_inhibit
import (
	"reflect"
	"github.com/rajveermalviya/go-wayland/wayland/client"
)
type KeyboardShortcutsInhibitManager struct {
	client.BaseProxy
}
func NewKeyboardShortcutsInhibitManager(ctx *client.Context) *KeyboardShortcutsInhibitManager {
	zwpKeyboardShortcutsInhibitManagerV1 := &KeyboardShortcutsInhibitManager{}
	ctx.Register(zwpKeyboardShortcutsInhibitManagerV1)
	return zwpKeyboardShortcutsInhibitManagerV1
}
func (i *KeyboardShortcutsInhibitManager) Destroy() error {
	defer i.Context().Unregister(i)
	const opcode = 0
	const rLen = 8
	r := make([]byte, rLen)
	l := 0
	client.PutUint32(r[l:4], i.ID())
	l += 4
	client.PutUint32(r[l:l+4], uint32(rLen<<16|opcode&0x0000ffff))
	l += 4
	err := i.Context().WriteMsg(r, nil)
	return err
}