From 87e23b9adf95f9bc8e42987f2abefbf12646c6ab Mon Sep 17 00:00:00 2001 From: vcaesar Date: Tue, 11 Dec 2018 13:12:16 -0400 Subject: [PATCH] optimize and clearer keytap code --- key/goKey.h | 2 +- robotgo.go | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/key/goKey.h b/key/goKey.h index 4b6d8e7..502ccd4 100644 --- a/key/goKey.h +++ b/key/goKey.h @@ -171,7 +171,7 @@ int GetFlagsFromValue(char* value[], MMKeyFlags* flags, int num){ } // If it's not an array, it should be a single string value. -char* key_Tap(char *k, char* keyArr[], int num, int keyDelay){ +char* key_Taps(char *k, char* keyArr[], int num, int keyDelay){ MMKeyFlags flags = MOD_NONE; // MMKeyFlags flags = 0; MMKeyCode key; diff --git a/robotgo.go b/robotgo.go index cb6f8e2..769e6ab 100644 --- a/robotgo.go +++ b/robotgo.go @@ -516,11 +516,10 @@ func KeyTap(tapKey string, args ...interface{}) { // var ckeyArr []*C.char ckeyArr := make([](*_Ctype_char), 0) - Try(func() { + if len(args) > 0 { if reflect.TypeOf(args[0]) == reflect.TypeOf(keyArr) { keyArr = args[0].([]string) - num = len(keyArr) for i := 0; i < num; i++ { @@ -542,30 +541,31 @@ func KeyTap(tapKey string, args ...interface{}) { } } - }, func(e interface{}) { + } else { // fmt.Println("err:::", e) akey = "null" keyArr = []string{"null"} - }) + } // }() zkey := C.CString(tapKey) + defer C.free(unsafe.Pointer(zkey)) if akey == "" && len(keyArr) != 0 { - C.key_Tap(zkey, (**_Ctype_char)(unsafe.Pointer(&ckeyArr[0])), + C.key_Taps(zkey, (**_Ctype_char)(unsafe.Pointer(&ckeyArr[0])), C.int(num), C.int(keyDelay)) - } else { - // zkey := C.CString(args[0]) - amod := C.CString(akey) - amodt := C.CString(keyT) - C.key_tap(zkey, amod, amodt, C.int(keyDelay)) - - defer C.free(unsafe.Pointer(amod)) - defer C.free(unsafe.Pointer(amodt)) + return } - defer C.free(unsafe.Pointer(zkey)) + // zkey := C.CString(args[0]) + amod := C.CString(akey) + amodt := C.CString(keyT) + + C.key_tap(zkey, amod, amodt, C.int(keyDelay)) + + C.free(unsafe.Pointer(amod)) + C.free(unsafe.Pointer(amodt)) } // KeyToggle toggle the keyboard