diff --git a/key.go b/key.go index 6e60151..6bb4887 100644 --- a/key.go +++ b/key.go @@ -384,7 +384,7 @@ func keyToggles(k string, keyArr []string) error { down = false } - flags := getFlagsFromValue(keyArr) + flags := getFlagsFromValue(keyArr[1:]) key, err := checkKeyCodes(k) if err != nil { return err diff --git a/key/keypress_c.h b/key/keypress_c.h index 300663d..dca304e 100644 --- a/key/keypress_c.h +++ b/key/keypress_c.h @@ -140,8 +140,9 @@ void toggleKeyCode(MMKeyCode code, const bool down, MMKeyFlags flags) { assert(keyEvent != NULL); CGEventSetType(keyEvent, down ? kCGEventKeyDown : kCGEventKeyUp); - // CGEventSetFlags(keyEvent, flags); - CGEventSetFlags(keyEvent, (int) flags); + if (flags != 0) { + CGEventSetFlags(keyEvent, (CGEventFlags) flags); + } CGEventPost(kCGSessionEventTap, keyEvent); CFRelease(keyEvent); }