mouse button support! buttons still can't be held. likely because we're playing

fast and loose with how we're doing 'synthetic' keys
pull/18/head
Jesse Vincent 11 years ago
parent 5f58352f0d
commit 50ae519c2e

@ -21,15 +21,15 @@ typedef struct {
byte rawKey; byte rawKey;
} Key; } Key;
#define KEY_FLAGS B0000000 #define KEY_FLAGS B00000000
#define CTRL_HELD B0000001 #define CTRL_HELD B00000001
#define ALT_HELD B0000010 #define ALT_HELD B00000010
#define SHIFT_HELD B0000100 #define SHIFT_HELD B00000100
#define GUI_HELD B0001000 #define GUI_HELD B00001000
#define SWITCH_TO_LAYER B0010000 #define SWITCH_TO_LAYER B00010000
#define MOMENTARY B0100000 #define MOMENTARY B00100000
#define MOUSE_KEY B1000000 #define MOUSE_KEY B01000000
#define SYNTHETIC_KEY B10000000
#define MOUSE_UP B0001 #define MOUSE_UP B0001
#define MOUSE_DN B0010 #define MOUSE_DN B0010
@ -49,7 +49,6 @@ typedef struct {
#define NoKey (Key){ KEY_FLAGS,0 } #define NoKey (Key){ KEY_FLAGS,0 }
#define Key_LCtrl (Key){ KEY_FLAGS, KEY_LEFT_CTRL }
@ -65,12 +64,16 @@ typedef struct {
#define mouseScrollDn #define mouseScrollDn
#define mouseScrollL #define mouseScrollL
#define mouseScrollR #define mouseScrollR
#define mouseBtnL (Key){ KEY_FLAGS, KEY_LEFT_CTRL } #define KEY_MOUSE_BTN_L 0x01 // Synthetic key
#define mouseBtnM (Key){ KEY_FLAGS, KEY_LEFT_CTRL } #define KEY_MOUSE_BTN_M 0x04 // Synthetic key
#define mouseBtnR (Key){ KEY_FLAGS, KEY_LEFT_CTRL } #define KEY_MOUSE_BTN_R 0x02 // Synthetic key
#define mouseBtnL (Key){ KEY_FLAGS | SYNTHETIC_KEY, KEY_MOUSE_BTN_L }
#define mouseBtnM (Key){ KEY_FLAGS | SYNTHETIC_KEY , KEY_MOUSE_BTN_M }
#define mouseBtnR (Key){ KEY_FLAGS | SYNTHETIC_KEY, KEY_MOUSE_BTN_R }
#define Key_LCtrl (Key){ KEY_FLAGS, KEY_LEFT_CTRL }
#define KEY_LEFT_CTRL 0x80 #define KEY_LEFT_CTRL 0x80
#define Key_LCtrl (Key){ KEY_FLAGS, KEY_LEFT_CTRL } #define Key_LCtrl (Key){ KEY_FLAGS, KEY_LEFT_CTRL }
#define KEY_LEFT_SHIFT 0x81 #define KEY_LEFT_SHIFT 0x81
@ -324,11 +327,6 @@ typedef struct {
#define KEY_WTF 0xF7 #define KEY_WTF 0xF7
#define Key_Wtf (Key){ KEY_FLAGS, KEY_WTF } #define Key_Wtf (Key){ KEY_FLAGS, KEY_WTF }
#define xx 0xF8
#define Key_Xx (Key){ KEY_FLAGS, xx }
#define xxx 0xF9
#define Key_Xxx (Key){ KEY_FLAGS, xxx }
#define xxxx 0xFA
#define Key_Xxxx (Key){ KEY_FLAGS, xxxx } #define Key_Xxxx (Key){ KEY_FLAGS, xxxx }
#define xxxxx 0xFE #define xxxxx 0xFE
#define Key_Xxxxx (Key){ KEY_FLAGS, xxxxx } #define Key_Xxxxx (Key){ KEY_FLAGS, xxxxx }

@ -195,6 +195,15 @@ void send_key_events(int layer) {
} }
} else if (mappedKey.flags & SYNTHETIC_KEY) {
if (mappedKey.rawKey == KEY_MOUSE_BTN_L || mappedKey.rawKey == KEY_MOUSE_BTN_M|| mappedKey.rawKey == KEY_MOUSE_BTN_R) {
if (key_toggled_on (switchState)) {
Mouse.press(mappedKey.rawKey);
} else if (key_is_pressed(switchState)) {
} else if (Mouse.isPressed(mappedKey.rawKey) ){
Mouse.release(mappedKey.rawKey);
}
}
} else { } else {
if (key_is_pressed(switchState)) { if (key_is_pressed(switchState)) {
record_key_being_pressed(mappedKey.rawKey); record_key_being_pressed(mappedKey.rawKey);

Loading…
Cancel
Save