Hi!
I got some time to track down the problem. It appears as though the OS sometimes adds a spurious "key pad" flag to keys not on the key pad. The way the nsterm.m is implemented, it fails to look them up making the key dead.
The following patch will first try to lookup the key as a keypad key, and if that fails, it will look it up as a plain key.
I have talked to the author of the 110793 revision and he has confirmed that my patch works OK.
Unfortunately, I don't have write access to the bzr archive, so I can't commit this myself.
=== modified file 'src/nsterm.m'
--- src/nsterm.m 2014-02-10 22:15:54 +0000
+++ src/nsterm.m 2014-02-15 07:01:48 +0000
@@ -5119,9 +5119,17 @@
/* (Carbon way: [theEvent keyCode]) */
/* is it a "function key"? */
- fnKeysym = (code < 0x00ff && (flags&NSNumericPadKeyMask))
- ? ns_convert_key ([theEvent keyCode] | NSNumericPadKeyMask)
- : ns_convert_key (code);
+ /* Note: Sometimes a plain key will have the NSNumericPadKeyMask
+ flag set (this is probably a bug in the OS).
+ */
+ if (code < 0x00ff && (flags&NSNumericPadKeyMask))
+ {
+ fnKeysym = ns_convert_key ([theEvent keyCode] | NSNumericPadKeyMask);
+ }
+ if (fnKeysym == 0)
+ {
+ fnKeysym = ns_convert_key (code);
+ }
if (fnKeysym)
{
Sincerely,
Anders Lindgren