New keyboard handling broken with non-us keyboards


#1

Will post more details when I get my hands on a German keyboard.

What seems to the problem is on a German keyboard is “/” above the seven (shift+7)

So when a user presses shift + 7 it shows up as shift + 7 and not slash. So if a keyboard shortcut is mapped to slash it doesn’t fire.

If the german users remap their keyboards, then they are fine, but it means the default key mappings are broken as they are shipped wth my app for non us users.


#2

This is a really fiddly issue - the key press handler is probably returning all the correct info - that it’s “shift + 7” and that the character is “/”, so I guess it needs some special handling in the key mapping class. Maybe a bodge like this:

[code]const String KeyPress::getTextDescription() const throw()
{
String desc;

if (keyCode > 0)
{
    if (textCharacter == T('/'))
        return "/";

[/code]

Are there any other characters that might cause similar problems on crazy foreign keyboards?


#3

Did this sort it out for you? I was trying to think what other characters might need treatment like this, but it’s quite tricky to know what’s best.


#4

That fixes that one case, but I’m not sure if there are any more. I guess I’d have to get a bunch of foreign keyboards. I’m not sure if I’m even going to worry about it. It’s easy enough for them to remap their keyboard.


#5