Send Command key to host rather than treating it as Control

Fixes #464
This commit is contained in:
Cameron Gutman
2021-10-12 19:01:14 -05:00
parent 3dd0e8362a
commit 92a2bbe28e
+16 -2
View File
@@ -21,9 +21,12 @@
if (key.modifierFlags & UIKeyModifierAlternate) { if (key.modifierFlags & UIKeyModifierAlternate) {
modifierFlags |= MODIFIER_ALT; modifierFlags |= MODIFIER_ALT;
} }
if (key.modifierFlags & (UIKeyModifierControl | UIKeyModifierCommand)) { if (key.modifierFlags & UIKeyModifierControl) {
modifierFlags |= MODIFIER_CTRL; modifierFlags |= MODIFIER_CTRL;
} }
if (key.modifierFlags & UIKeyModifierCommand) {
modifierFlags |= MODIFIER_META;
}
// This converts UIKeyboardHIDUsage values to Win32 VK_* values // This converts UIKeyboardHIDUsage values to Win32 VK_* values
// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes // https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
@@ -189,6 +192,8 @@
keyCode = 0xF8; keyCode = 0xF8;
break; break;
case UIKeyboardHIDUsageKeyboardLeftGUI: case UIKeyboardHIDUsageKeyboardLeftGUI:
keyCode = 0x5B;
break;
case UIKeyboardHIDUsageKeyboardLeftControl: case UIKeyboardHIDUsageKeyboardLeftControl:
keyCode = 0xA2; keyCode = 0xA2;
break; break;
@@ -199,6 +204,8 @@
keyCode = 0xA4; keyCode = 0xA4;
break; break;
case UIKeyboardHIDUsageKeyboardRightGUI: case UIKeyboardHIDUsageKeyboardRightGUI:
keyCode = 0x5C;
break;
case UIKeyboardHIDUsageKeyboardRightControl: case UIKeyboardHIDUsageKeyboardRightControl:
keyCode = 0xA3; keyCode = 0xA3;
break; break;
@@ -232,10 +239,12 @@
case UIKeyModifierShift: case UIKeyModifierShift:
[KeyboardSupport addShiftModifier:&event]; [KeyboardSupport addShiftModifier:&event];
break; break;
case UIKeyModifierCommand:
case UIKeyModifierControl: case UIKeyModifierControl:
[KeyboardSupport addControlModifier:&event]; [KeyboardSupport addControlModifier:&event];
break; break;
case UIKeyModifierCommand:
[KeyboardSupport addMetaModifier:&event];
break;
case UIKeyModifierAlternate: case UIKeyModifierAlternate:
[KeyboardSupport addAltModifier:&event]; [KeyboardSupport addAltModifier:&event];
break; break;
@@ -393,6 +402,11 @@
event->modifierKeycode = 0x11; event->modifierKeycode = 0x11;
} }
+ (void) addMetaModifier:(struct KeyEvent*)event {
event->modifier = MODIFIER_META;
event->modifierKeycode = 0x5B;
}
+ (void) addAltModifier:(struct KeyEvent*)event { + (void) addAltModifier:(struct KeyEvent*)event {
event->modifier = MODIFIER_ALT; event->modifier = MODIFIER_ALT;
event->modifierKeycode = 0x12; event->modifierKeycode = 0x12;