in src/modules/keyboardmanager/common/Shortcut.cpp [285:394]
bool Shortcut::SetKey(const DWORD& input)
{
// Since there isn't a key for a common Win key we use the key code defined by us
if (input == CommonSharedConstants::VK_WIN_BOTH)
{
if (winKey == ModifierKey::Both)
{
return false;
}
winKey = ModifierKey::Both;
}
else if (input == VK_LWIN)
{
if (winKey == ModifierKey::Left)
{
return false;
}
winKey = ModifierKey::Left;
}
else if (input == VK_RWIN)
{
if (winKey == ModifierKey::Right)
{
return false;
}
winKey = ModifierKey::Right;
}
else if (input == VK_LCONTROL)
{
if (ctrlKey == ModifierKey::Left)
{
return false;
}
ctrlKey = ModifierKey::Left;
}
else if (input == VK_RCONTROL)
{
if (ctrlKey == ModifierKey::Right)
{
return false;
}
ctrlKey = ModifierKey::Right;
}
else if (input == VK_CONTROL)
{
if (ctrlKey == ModifierKey::Both)
{
return false;
}
ctrlKey = ModifierKey::Both;
}
else if (input == VK_LMENU)
{
if (altKey == ModifierKey::Left)
{
return false;
}
altKey = ModifierKey::Left;
}
else if (input == VK_RMENU)
{
if (altKey == ModifierKey::Right)
{
return false;
}
altKey = ModifierKey::Right;
}
else if (input == VK_MENU)
{
if (altKey == ModifierKey::Both)
{
return false;
}
altKey = ModifierKey::Both;
}
else if (input == VK_LSHIFT)
{
if (shiftKey == ModifierKey::Left)
{
return false;
}
shiftKey = ModifierKey::Left;
}
else if (input == VK_RSHIFT)
{
if (shiftKey == ModifierKey::Right)
{
return false;
}
shiftKey = ModifierKey::Right;
}
else if (input == VK_SHIFT)
{
if (shiftKey == ModifierKey::Both)
{
return false;
}
shiftKey = ModifierKey::Both;
}
else
{
if (actionKey == input)
{
return false;
}
actionKey = input;
}
return true;
}