cknave/kevedit

Locale-specific keys plus modifier keys issue

kristomu opened this issue · 4 comments

While editing objects on a non-US computer on Linux, the editor seems to ignore Shift for keys that have been redefined by locale. For instance, on a Scandinavian keyboard, the less than and greater than keys are at the bottom left - no shift gives less-than and Shift plus the key gives greater-than.

Pressing they key alone gives less-than, as expected, but holding Shift does nothing: the key still comes out as less-than instead of greater-than. This in effect makes it impossible to type certain characters in the editor without using Ctrl+A. E.g. on the same type of keyboard, Shift+(the key to the right of 0) gives a question mark, and the key alone gives a +; object editing will always output + regardless of whether Shift is active at that moment.

^ This was fixed in #29 --kvance

Keys that have no analog in English do nothing, e.g. æ doesn't register at all. It'd be nice to have it output 91h (without shift) and 92h (with), but I guess that's a bit of a different issue and more of a feature request than a bug :-)

Leaving this open as the feature request would still be nice to have

I just fixed a bug in the C++ code. The Unicode token corresponding to the last CP437 point should be 0xA0, not 0x20, otherwise the reverse mapping (Unicode to CP437) will make every Unicode space into a CP437 0xFF point.

All done!