ALTGR key processing fix

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/branches/gnustep_testplant_branch@37739 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Marcian Lytwyn 2014-03-10 16:33:49 +00:00
parent aaa0a6e5c2
commit 447f226df0

View file

@ -2989,6 +2989,52 @@ mask_for_keystate(BYTE *keyState)
if (keyState[VK_CAPITAL] & 128)
eventFlags |= NSShiftKeyMask;
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"USE_ALTGR_FIX"])
{
// Left ALT Key press???
if (keyState[VK_LMENU] & 128)
{
if([@"Alt_L" isEqualToString: firstControl] ||
[@"Alt_L" isEqualToString: secondControl])
eventFlags |= NSControlKeyMask;
else if([@"Alt_L" isEqualToString: firstCommand] ||
[@"Alt_L" isEqualToString: secondCommand])
eventFlags |= NSCommandKeyMask;
else
eventFlags |= NSAlternateKeyMask;
}
// Right ALT Key press???
if (keyState[VK_RMENU] & 128)
{
if([@"Alt_R" isEqualToString: firstControl] ||
[@"Alt_R" isEqualToString: secondControl])
eventFlags |= NSControlKeyMask;
else if([@"Alt_R" isEqualToString: firstCommand] ||
[@"Alt_R" isEqualToString: secondCommand])
eventFlags |= NSCommandKeyMask;
else
eventFlags |= NSAlternateKeyMask;
}
if ((keyState[VK_LCONTROL] & 128) && (keyState[VK_RMENU] & 128))
{
// IGNORED - ALtGr key pressed...
}
else if ((keyState[VK_LCONTROL] & 128) || (keyState[VK_RWIN] & 128))
{
if([@"Control_L" isEqualToString: firstAlt] ||
[@"Control_L" isEqualToString: secondAlt])
eventFlags |= NSAlternateKeyMask;
else if([@"Control_L" isEqualToString: firstControl] ||
[@"Control_L" isEqualToString: secondControl])
eventFlags |= NSControlKeyMask;
else
eventFlags |= NSCommandKeyMask;
}
}
else
{
if (keyState[VK_MENU] & 128)
{
if([@"Alt_R" isEqualToString: firstControl] ||
@ -3001,9 +3047,6 @@ mask_for_keystate(BYTE *keyState)
eventFlags |= NSAlternateKeyMask;
}
if (keyState[VK_HELP] & 128)
eventFlags |= NSHelpKeyMask;
if ((keyState[VK_LCONTROL] & 128) || (keyState[VK_RWIN] & 128))
{
if([@"Control_L" isEqualToString: firstAlt] ||
@ -3015,6 +3058,10 @@ mask_for_keystate(BYTE *keyState)
else
eventFlags |= NSCommandKeyMask;
}
}
if (keyState[VK_HELP] & 128)
eventFlags |= NSHelpKeyMask;
return eventFlags;
}