Author: dpsimons
Date: Thu Jul 10 06:47:00 2014
New Revision: 37987
URL: http://svn.gna.org/viewcvs/gnustep?rev=37987&view=rev
Log:
fix keys in NSEvent when Ctrl and Shift are used so key equivalents like
Ctrl-Shift-+ will be recognized
Modified:
libs/back/branches/gnustep_testplant_branch/ChangeLog
libs/back/branches/gnustep_testplant_branch/Source/win32/WIN32Server.m
Modified: libs/back/branches/gnustep_testplant_branch/ChangeLog
URL:
http://svn.gna.org/viewcvs/gnustep/libs/back/branches/gnustep_testplant_branch/ChangeLog?rev=37987&r1=37986&r2=37987&view=diff
==============================================================================
--- libs/back/branches/gnustep_testplant_branch/ChangeLog (original)
+++ libs/back/branches/gnustep_testplant_branch/ChangeLog Thu Jul 10
06:47:00 2014
@@ -1,3 +1,9 @@
+2014-07-09 Doug Simons <[email protected]>
+
+ * Source/win32/WIN32Server.m : Fix process_key_event to set
+ keys and ukeys correctly when control key is down so key
+ equivalents like Ctrl-(Shift)-+ will be recognized.
+
2013-10-21 Frank Le Grand <[email protected]>
* 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=37987&r1=37986&r2=37987&view=diff
==============================================================================
--- libs/back/branches/gnustep_testplant_branch/Source/win32/WIN32Server.m
(original)
+++ libs/back/branches/gnustep_testplant_branch/Source/win32/WIN32Server.m
Thu Jul 10 06:47:00 2014
@@ -3217,7 +3217,20 @@
if (eventFlags & NSShiftKeyMask)
ukeys = [ukeys uppercaseString];
-
+
+ if ([keys length] == 0 && ((keyState[VK_CONTROL] & 128) ||
(keyState[VK_LCONTROL] & 128) || (keyState[VK_RCONTROL] & 128)))
+ {
+ // a Control key is down, which may have caused ToUnicodeEx to return
no key -- try without the control key(s)
+ keyState[VK_CONTROL] = 0;
+ keyState[VK_LCONTROL] = 0;
+ keyState[VK_RCONTROL] = 0;
+ result = ToUnicodeEx(wParam, scan, keyState, unicode, 5, 0,
GetKeyboardLayout(0));
+ keys = [NSString stringWithCharacters: unicode length: result];
+ ukeys = keys;
+ if (eventFlags & NSShiftKeyMask)
+ ukeys = [ukeys lowercaseString]; // set ukeys to unshifted version
iff it's a letter
+ }
+
// key events should go to the key window if we have one (Windows' focus
window isn't always appropriate)
int windowNumber = [[NSApp keyWindow] windowNumber];
if (windowNumber == 0)
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs