diff options
author | Geenz <geenz@geenzo.com> | 2013-01-15 05:46:31 -0500 |
---|---|---|
committer | Geenz <geenz@geenzo.com> | 2013-01-15 05:46:31 -0500 |
commit | da90fe352847d5f27358179cb4cdf88abc40a4af (patch) | |
tree | fc77d0e5506d074b87cc0bcc2a5f7c7a5cc82cfb /indra/llwindow/llkeyboardmacosx.cpp | |
parent | 09b07e3619a71f142c1a3af41244d756e1230142 (diff) |
This *should* put an end to our modifier key woes.
Diffstat (limited to 'indra/llwindow/llkeyboardmacosx.cpp')
-rw-r--r-- | indra/llwindow/llkeyboardmacosx.cpp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/indra/llwindow/llkeyboardmacosx.cpp b/indra/llwindow/llkeyboardmacosx.cpp index 3db94e8835..59cc2acaec 100644 --- a/indra/llwindow/llkeyboardmacosx.cpp +++ b/indra/llwindow/llkeyboardmacosx.cpp @@ -200,9 +200,25 @@ static BOOL translateKeyMac(const U16 key, const U32 mask, KEY &outKey, U32 &out MASK LLKeyboardMacOSX::updateModifiers(const U32 mask) { - // This is handled for us in LLNSWindow on OS X. - - return mask; + // translate the mask + MASK out_mask = 0; + + if(mask & MAC_SHIFT_KEY) + { + out_mask |= MASK_SHIFT; + } + + if(mask & MAC_CTRL_KEY || mask & MAC_CMD_KEY) + { + out_mask |= MASK_CONTROL; + } + + if(mask & MAC_ALT_KEY) + { + out_mask |= MASK_ALT; + } + + return out_mask; } BOOL LLKeyboardMacOSX::handleKeyDown(const U16 key, const U32 mask) @@ -232,6 +248,7 @@ BOOL LLKeyboardMacOSX::handleKeyUp(const U16 key, const U32 mask) if(translateNumpadKey(key, &translated_key)) { + LL_INFOS("Keyboard") << "Handled key!" << LL_ENDL; handled = handleTranslatedKeyUp(translated_key, translated_mask); } @@ -252,8 +269,8 @@ MASK LLKeyboardMacOSX::currentMask(BOOL for_mouse_event) { if (mask & MAC_CMD_KEY) result |= MASK_CONTROL; } - - return mask; + + return result; } void LLKeyboardMacOSX::scanKeyboard() |