Changeset 14017 in josm for trunk/src/org/openstreetmap/josm


Ignore:
Timestamp:
2018-07-08T15:11:49+02:00 (12 months ago)
Author:
Don-vip
Message:

see #16453 - support dead keys. Drop ancient Polish keyboards not used anymore

Location:
trunk/src/org/openstreetmap/josm/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/tools/KeyboardUtils.java

    r14016 r14017  
    181181                } else if (!"LU".equals(l.getCountry())) {
    182182                    // France and Belgium, https://en.wikipedia.org/wiki/AZERTY
    183                     result.add('²'); // 10000B2
     183                    result.add('²');
    184184                }
    185185                // BÉPO, https://en.wikipedia.org/wiki/Keyboard_layout#B%C3%89PO
     
    202202            case "de": // German
    203203                // https://en.wikipedia.org/wiki/German_keyboard_layout
    204                 result.add('^');
     204                result.add((char) KeyEvent.VK_DEAD_CIRCUMFLEX);
    205205                break;
    206206            case "cs": // Czech
     
    213213                // Hungary, https://en.wikipedia.org/wiki/QWERTZ#Hungary
    214214                result.add('0');
    215                 break;
    216             case "pl": // Polish
    217                 // Poland, https://en.wikipedia.org/wiki/QWERTZ#Poland
    218                 result.add('µ');
    219                 result.add('^');
    220                 result.add('˛'); // https://en.wikipedia.org/wiki/Ogonek
    221215                break;
    222216            case "bs": // Bosnian
     
    243237            case "et": // Estonian
    244238                // https://en.wikipedia.org/wiki/QWERTY#Estonian
    245                 result.add('ˇ'); // https://en.wikipedia.org/wiki/Caron
     239                result.add((char) KeyEvent.VK_DEAD_CARON); // https://en.wikipedia.org/wiki/Caron
    246240                break;
    247241            case "is": // Icelandic
    248242                // https://en.wikipedia.org/wiki/Icelandic_keyboard_layout
    249243                result.add('°'); // https://en.wikipedia.org/wiki/Ring_(diacritic)
     244                // FIXME It doesn't work with Java 8: [KEY_PRESSED,keyCode=0,keyChar=Undefined keyChar,extendedKeyCode=0x0]
    250245                break;
    251246            case "es": // Spanish
     
    290285                // https://en.wikipedia.org/wiki/QWERTY#Spain,_also_known_as_Spanish_(International_sort)
    291286                result.add('º'); // https://en.wikipedia.org/wiki/Ordinal_indicator
     287                // FIXME It doesn't work with Java 8: [KEY_PRESSED,keyCode=0,keyChar=Undefined keyChar,extendedKeyCode=0x0]
    292288                break;
    293289            default:
     
    303299            // Add default US QWERTY keys, https://en.wikipedia.org/wiki/QWERTY
    304300            // Works also for Dvorak, https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
    305             result.add('`');
    306             result.add('~');
     301            result.add('`'); // On US QWERTY, this is not a dead key
     302            result.add((char) KeyEvent.VK_DEAD_GRAVE); // On International QWERTY, this is a dead key
    307303            return result;
    308304        }
  • trunk/src/org/openstreetmap/josm/tools/Shortcut.java

    r14013 r14017  
    462462                    new StringBuilder(shortText).append(" (").append(i).append(')').toString(), longText,
    463463                    // Add extended keyCode if not a regular one
    464                     regularKeyCodes.containsKey(code) ? regularKeyCodes.get(code) : c | KeyboardUtils.EXTENDED_KEYCODE_FLAG,
     464                    regularKeyCodes.containsKey(code) ? regularKeyCodes.get(code) :
     465                        isDeadKey(code) ? code : c | KeyboardUtils.EXTENDED_KEYCODE_FLAG,
    465466                    requestedGroup));
    466467            i++;
    467468        }
    468469        return result;
     470    }
     471
     472    static boolean isDeadKey(int keyCode) {
     473        return KeyEvent.VK_DEAD_GRAVE <= keyCode && keyCode <= KeyEvent.VK_DEAD_SEMIVOICED_SOUND;
    469474    }
    470475
Note: See TracChangeset for help on using the changeset viewer.