Applied patch 1528302, number pad keys in OS X. Also added
support for NumLock key.
This commit is contained in:
parent
4baf785907
commit
8896add372
|
@ -32,6 +32,8 @@ static const UInt32 s_controlVK = 59;
|
||||||
static const UInt32 s_altVK = 55;
|
static const UInt32 s_altVK = 55;
|
||||||
static const UInt32 s_superVK = 58;
|
static const UInt32 s_superVK = 58;
|
||||||
static const UInt32 s_capsLockVK = 57;
|
static const UInt32 s_capsLockVK = 57;
|
||||||
|
static const UInt32 s_numLockVK = 71;
|
||||||
|
static const UInt32 s_osxNumLock = 1 << 16;
|
||||||
struct CKeyEntry {
|
struct CKeyEntry {
|
||||||
public:
|
public:
|
||||||
KeyID m_keyID;
|
KeyID m_keyID;
|
||||||
|
@ -68,6 +70,24 @@ static const CKeyEntry s_controlKeys[] = {
|
||||||
{ kKeyF15, 113 },
|
{ kKeyF15, 113 },
|
||||||
{ kKeyF16, 106 },
|
{ kKeyF16, 106 },
|
||||||
|
|
||||||
|
{ kKeyKP_0, 82 },
|
||||||
|
{ kKeyKP_1, 83 },
|
||||||
|
{ kKeyKP_2, 84 },
|
||||||
|
{ kKeyKP_3, 85 },
|
||||||
|
{ kKeyKP_4, 86 },
|
||||||
|
{ kKeyKP_5, 87 },
|
||||||
|
{ kKeyKP_6, 88 },
|
||||||
|
{ kKeyKP_7, 89 },
|
||||||
|
{ kKeyKP_8, 91 },
|
||||||
|
{ kKeyKP_9, 92 },
|
||||||
|
{ kKeyKP_Decimal, 65 },
|
||||||
|
{ kKeyKP_Equal, 81 },
|
||||||
|
{ kKeyKP_Multiply, 67 },
|
||||||
|
{ kKeyKP_Add, 69 },
|
||||||
|
{ kKeyKP_Divide, 75 },
|
||||||
|
{ kKeyKP_Subtract, 79 },
|
||||||
|
{ kKeyKP_Enter, 76 },
|
||||||
|
|
||||||
// virtual key 110 is fn+enter and i have no idea what that's supposed
|
// virtual key 110 is fn+enter and i have no idea what that's supposed
|
||||||
// to map to. also the enter key with numlock on is a modifier but i
|
// to map to. also the enter key with numlock on is a modifier but i
|
||||||
// don't know which.
|
// don't know which.
|
||||||
|
@ -86,7 +106,7 @@ static const CKeyEntry s_controlKeys[] = {
|
||||||
{ kKeyMeta_R, s_superVK }, // 61
|
{ kKeyMeta_R, s_superVK }, // 61
|
||||||
|
|
||||||
// toggle modifiers
|
// toggle modifiers
|
||||||
// { kKeyNumLock, 71 },
|
{ kKeyNumLock, s_numLockVK },
|
||||||
{ kKeyCapsLock, s_capsLockVK }
|
{ kKeyCapsLock, s_capsLockVK }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -117,6 +137,7 @@ COSXKeyState::~COSXKeyState()
|
||||||
KeyModifierMask
|
KeyModifierMask
|
||||||
COSXKeyState::mapModifiersFromOSX(UInt32 mask) const
|
COSXKeyState::mapModifiersFromOSX(UInt32 mask) const
|
||||||
{
|
{
|
||||||
|
LOG((CLOG_DEBUG1 "mask: %04x", mask));
|
||||||
// convert
|
// convert
|
||||||
KeyModifierMask outMask = 0;
|
KeyModifierMask outMask = 0;
|
||||||
if ((mask & shiftKey) != 0) {
|
if ((mask & shiftKey) != 0) {
|
||||||
|
@ -143,6 +164,9 @@ COSXKeyState::mapModifiersFromOSX(UInt32 mask) const
|
||||||
if ((mask & alphaLock) != 0) {
|
if ((mask & alphaLock) != 0) {
|
||||||
outMask |= KeyModifierCapsLock;
|
outMask |= KeyModifierCapsLock;
|
||||||
}
|
}
|
||||||
|
if ((mask & s_osxNumLock) != 0) {
|
||||||
|
outMask |= KeyModifierNumLock;
|
||||||
|
}
|
||||||
|
|
||||||
return outMask;
|
return outMask;
|
||||||
}
|
}
|
||||||
|
@ -572,6 +596,9 @@ COSXKeyState::mapSynergyHotKeyToMac(KeyID key, KeyModifierMask mask,
|
||||||
if ((mask & KeyModifierCapsLock) != 0) {
|
if ((mask & KeyModifierCapsLock) != 0) {
|
||||||
macModifierMask |= alphaLock;
|
macModifierMask |= alphaLock;
|
||||||
}
|
}
|
||||||
|
if ((mask & KeyModifierNumLock) != 0) {
|
||||||
|
macModifierMask |= s_osxNumLock;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -604,6 +631,10 @@ COSXKeyState::handleModifierKeys(void* target,
|
||||||
handleModifierKey(target, s_capsLockVK, kKeyCapsLock,
|
handleModifierKey(target, s_capsLockVK, kKeyCapsLock,
|
||||||
(newMask & KeyModifierCapsLock) != 0, newMask);
|
(newMask & KeyModifierCapsLock) != 0, newMask);
|
||||||
}
|
}
|
||||||
|
if ((changed & KeyModifierNumLock) != 0) {
|
||||||
|
handleModifierKey(target, s_numLockVK, kKeyNumLock,
|
||||||
|
(newMask & KeyModifierNumLock) != 0, newMask);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue