Author: mlytwyn
Date: Mon Mar 10 17:33:49 2014
New Revision: 37739
URL: http://svn.gna.org/viewcvs/gnustep?rev=37739&view=rev
Log:
ALTGR key processing fix
Modified:
libs/back/branches/gnustep_testplant_branch/Source/win32/WIN32Server.m
Modified: libs/back/branches/gnustep_testplant_branch/Source/win32/WIN32Server.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/back/branches/gnustep_testplant_branch/Source/win32/WIN32Server.m?rev=37739&r1=37738&r2=37739&view=diff
==============================================================================
--- libs/back/branches/gnustep_testplant_branch/Source/win32/WIN32Server.m
(original)
+++ libs/back/branches/gnustep_testplant_branch/Source/win32/WIN32Server.m
Mon Mar 10 17:33:49 2014
@@ -2989,32 +2989,79 @@
if (keyState[VK_CAPITAL] & 128)
eventFlags |= NSShiftKeyMask;
- if (keyState[VK_MENU] & 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 ([[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] ||
+ [@"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_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;
+ }
+ }
+
if (keyState[VK_HELP] & 128)
eventFlags |= NSHelpKeyMask;
-
- 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;
- }
return eventFlags;
}
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs