Ignore:
Timestamp:
2018-07-08T00:27:14+02:00 (5 weeks ago)
Author:
Don-vip
Message:

see #16453 - proper support of different keyboard layouts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java

    r12987 r14012  
    1414import java.awt.Toolkit;
    1515import java.awt.event.KeyEvent;
     16import java.awt.im.InputContext;
    1617import java.lang.reflect.Field;
    1718import java.util.ArrayList;
     
    5051import org.openstreetmap.josm.gui.widgets.JosmTextField;
    5152import org.openstreetmap.josm.gui.widgets.SelectAllOnFocusGainedDecorator;
     53import org.openstreetmap.josm.tools.KeyboardUtils;
    5254import org.openstreetmap.josm.tools.Logging;
    5355import org.openstreetmap.josm.tools.Shortcut;
     
    114116            }
    115117        }
     118        KeyboardUtils.getExtendedKeyCodes(InputContext.getInstance().getLocale()).entrySet()
     119            .forEach(e -> list.put(e.getKey(), e.getValue().toString()));
    116120        list.put(Integer.valueOf(-1), "");
    117121        return list;
     
    333337                    int row = panel.shortcutTable.convertRowIndexToModel(lsm.getMinSelectionIndex());
    334338                    Shortcut sc = (Shortcut) panel.model.getValueAt(row, -1);
     339                    Object selectedKey = panel.tfKey.getSelectedItem();
    335340                    if (panel.cbDisable.isSelected()) {
    336341                        sc.setAssignedModifier(-1);
    337                     } else if (panel.tfKey.getSelectedItem() == null || "".equals(panel.tfKey.getSelectedItem())) {
     342                    } else if (selectedKey == null || "".equals(selectedKey)) {
    338343                        sc.setAssignedModifier(KeyEvent.VK_CANCEL);
    339344                    } else {
     
    345350                        );
    346351                        for (Map.Entry<Integer, String> entry : keyList.entrySet()) {
    347                             if (entry.getValue().equals(panel.tfKey.getSelectedItem())) {
     352                            if (entry.getValue().equals(selectedKey)) {
    348353                                sc.setAssignedKey(entry.getKey());
    349354                            }
Note: See TracChangeset for help on using the changeset viewer.