//export keyEvent func keyEvent(id uintptr, runeVal rune, dir uint8, code uint16, flags uint32) { sendWindowEvent(id, key.Event{ Rune: cocoaRune(runeVal), Direction: key.Direction(dir), Code: cocoaKeyCode(code), Modifiers: cocoaMods(flags), }) }
//export eventKey func eventKey(runeVal int32, direction uint8, code uint16, flags uint32) { var modifiers key.Modifiers for _, mod := range mods { if flags&mod.flags == mod.flags { modifiers |= mod.mod } } eventsIn <- key.Event{ Rune: convRune(rune(runeVal)), Code: convVirtualKeyCode(code), Modifiers: modifiers, Direction: key.Direction(direction), } }
//export onKey func onKey(id uintptr, state uint16, detail, dir uint8) { theScreen.mu.Lock() w := theScreen.windows[id] theScreen.mu.Unlock() if w == nil { return } r, c := theKeysyms.Lookup(detail, state) w.Send(key.Event{ Rune: r, Code: c, Modifiers: x11key.KeyModifiers(state), Direction: key.Direction(dir), }) }