diff --git a/src/lib/platform/OSXKeyState.cpp b/src/lib/platform/OSXKeyState.cpp index 71700d95..9f3d923f 100644 --- a/src/lib/platform/OSXKeyState.cpp +++ b/src/lib/platform/OSXKeyState.cpp @@ -379,17 +379,15 @@ OSXKeyState::pollActiveModifiers() const SInt32 OSXKeyState::pollActiveGroup() const { + bool layoutValid = true; TISInputSourceRef keyboardLayout = TISCopyCurrentKeyboardLayoutInputSource(); - CFDataRef id = (CFDataRef)TISGetInputSourceProperty( - keyboardLayout, kTISPropertyInputSourceID); - GroupMap::const_iterator i = m_groupMap.find(id); - if (i != m_groupMap.end()) { - return i->second; + if (layoutValid) { + GroupMap::const_iterator i = m_groupMap.find(keyboardLayout); + if (i != m_groupMap.end()) { + return i->second; + } } - - LOG((CLOG_DEBUG "can't get the active group, use the first group instead")); - return 0; } @@ -416,9 +414,7 @@ OSXKeyState::getKeyMap(synergy::KeyMap& keyMap) m_groupMap.clear(); SInt32 numGroups = (SInt32)m_groups.size(); for (SInt32 g = 0; g < numGroups; ++g) { - CFDataRef id = (CFDataRef)TISGetInputSourceProperty( - m_groups[g], kTISPropertyInputSourceID); - m_groupMap[id] = g; + m_groupMap[m_groups[g]] = g; } } diff --git a/src/lib/platform/OSXKeyState.h b/src/lib/platform/OSXKeyState.h index ae54c2d3..29cd5d6c 100644 --- a/src/lib/platform/OSXKeyState.h +++ b/src/lib/platform/OSXKeyState.h @@ -158,7 +158,7 @@ private: KeyButtonOffset = 1 }; - typedef std::map GroupMap; + typedef std::map GroupMap; typedef std::map VirtualKeyMap; VirtualKeyMap m_virtualKeyMap;